前端学习(四十八) JavaScript-正则(javaScript)

正则表达式主要用作

校验

匹配

替换

正则表达式创建

1.直接量

/pattern/attrs:pattern代表模式规则,是一个字符序列,attrs:增加修饰符

2.对象创建

new RegExp(pattern,attrs)

校验字符串是否匹配给的的模式

RegExp.test(string)   //是否符合匹配规则

RegExp.exec(string)   //

String.search(RegExp)

String.match(RegExp)

String.replace(RegExp/str,replacement)

字符串上的方法

String.prototype.match(regexp)

检索字符串中能够匹配正则表达式的匹配项

参数regexp:代表正则表达式

返回值:返回匹配结果的数组

var b="1231231231234296640918";
console.log(b.match(/123/g))   //返回["123","123","123","123"]

String.prototype.seach(regexp)

执行正则表达式和string之间的搜索匹配

参数:regexp代表正则表达式对象

返回值:第一个匹配的子串的其实位置或-1,注意不支持g,也就是全局查找

var b="1231231231234296640918";
console.log(b.search(/\d/))   //返回0,因为第一个位置就是0

String.prototype.replace(RegExp|str,replacement)

匹配字符串并用新的替换值替换掉匹配到的子串

参数:RegExp|str代表正则表达式对象或者要被替换的子串,replacement:newSubStr或者创建新子串的函数

返回值:被部分或全部匹配替换的新字符串

var b="1231前端23123前端1234前端296640前端918";
console.log(b.replace(/前端/g,"后端"))   //输出:1231后端23123后端1234后端296640后端918

RegExp对象

RegExp.prototype.test(str)

判断正则表达式与指定字符串是否匹配

参数:str代表用来匹配的字符串,返回true或false

RegExp.prototype.test(str)

在指定字符串中执行搜索匹配,得到结果数组

参数:str代表用来匹配的字符串,返回值,完整的匹配数组,第一个元素是匹配的字符串,余下的元素是与分组的子表达式匹配的子串,另外此方法执行完会更新正则表达式对象中的属性lastIndex(RegExp.lastIndex是指定下一次匹配的起始索引,使用全局检索时才会生效)

案例分析

邮箱-案例分析

一个合格的邮箱:必须有@字符,前缀至少有一个字符,允许的字符有字母,数字,.,_和-,后缀中允许的字符有字母,数字,-和.,最后以2-10个字母或数字结尾

function test() {
    var inputEamil=document.getElementById("email").value
    console.log(inputEamil);
    var textEmail=new RegExp(/^([\w_\.\-\+])+\@([\w\-]+\.)+([\w]{2,10})+$/);
    if (inputEamil.length==0){
        alert("邮箱不能为空")
    }
    else {
        if (textEmail.test(inputEamil)){
            document.getElementById("text").innerHTML="输入正确!"
        }
        else {
            document.getElementById("text").innerHTML="请输入正确的邮箱格式!"
        }
    }
}

url-案例分析

http://study.163.com/course/courseMain.html?courseId=891009

http:这部分代表protocal

study.163.com这部分代表hostname

/course/courseMain.html这部分代表pathname

?courseId=891009这部分代表search

猜你喜欢

转载自blog.csdn.net/zy21131437/article/details/81210725