JavaScript正则表达式实例详解
废话不多说了,直接把小编多年总结汇总的代码奉献给大家
<scripttype="text/javascript"> varstr2="YouCan3You8Up,nocannobibi!"; varreg=/^[0-9a-zA-Z]{1,}$/; console.log(reg.test(str2)); //正则表达式的一般形式 //正则表达式对象的创建: //var对象名=newRegExp(参数1,参数2); //参数1:匹配规则,必须是字符串 //参数2:可以省略,(属性)可选值,用来设置匹配规则的范围 //第一种方式 //判断字符串中是否包含某子字符串 varstr3="abcd"; varreg2=newRegExp("ab"); console.log(reg2.test(str3));//成功:true不成功:false //想匹配字符串,必须使用正则表达式的函数 //test(字符串)函数作用:用来判断该字符串是否满足正则表达式的规则,如果满足,则返回true,如果不满足,则返回false //创建正则表达式的最常用方式-第二种方式 //var对象名=/参数1/参数2; //参数1:设置匹配规则 //参数2:属性(可选值),设置匹配规则的范围 varstr4="youbd"; //判断/mn/是否包含自字符串mn varreg3=/ou/; console.log(reg3.test(str4)); //参数2:属性(有三个值) //i:不区分字母大小写去匹配; //g:全局搜索:即便匹配到对应的内容,也会继续匹配,直到字符串结束位置 //m:多行搜索 varreg4=/jingdong/i; console.log(reg4.test("JingDongShangCheng")); //匹配规则 //1.普通的字符匹配股则 // /12//ab//ac8/... //2.特殊字符 // \n换行 // \t切换符号tab键 // \r回车键enter键 // \d数字0-9或者[0123456789] // \D非数字或者[^0123456789] // \w字母,数字,下划线,汉字 // \W非(字母,数字,下划线,汉字)之外的 // \s空白(空格,换行,tab切换键) // \S非空白 // .除了\n之外的其他字符或者[^\n] // []用来匹配字符串中是否出现过[]中的字符,如果出现,为true,不出现,为false // [^]用来匹配除了[]中出现的字符 varreg5=/\n/; varstr5="LaMo\nSi"; console.log(reg5.test(str5)); varreg6=/\d/;//以数字开头 console.log(reg6.test("007t7")); varreg7=/\D/; console.log(reg7.test("3403l")); varreg8=/\w/; console.log(reg8.test("$-@9")); varreg9=/\W/; console.log(reg9.test("$-@9")); varreg10=/\s/; console.log(reg10.test("longguilamosi")); varreg11=/\S/; console.log(reg11.test("longguilamosi")); varreg12=/[ab]/;//判断字符串中是否出现过任意一个字符(a,b,ab),出现,则为true,反之,为false console.log(reg12.test("dafbcd")); //特殊字符对应的正则表达式 // 1.选字符-用于指定字符串的范围例如:[0-9]即匹配0到9的数字; // [a-z]即匹配所有的小写字母; // [A-Z]即匹配所有的大写字母; varreg13=/[a-z0-9A-Z]/g; console.log(reg13.test("aii9B")); // match(正则表达式)函数 // 作用:用来匹配该字符串中是否有符合规则的字符串,返回值是一个数组,每个字符串作为数组的一个元素 varstr13="A*99abcY0B49L"; vararr=str13.match(reg13); console.log(arr); varstr14="*abc99!@a3ab"; varreg14=/ab/g; vararr2=str14.match(reg14); console.log(arr2); // search(正则表达式)函数 // 作用:只要匹配到符合规则的字符串就会将该字符串的开始下标返回,反之,返回-1 varstr15="youabcdY90we"; varresult=str15.search(/ab/); console.log(result); varstr16="youcanyouup,nocannobibi!"; console.log(str16.split("")); console.log(str16.split("o")); //正则表达式匹配作为分割符号 console.log(str16.split(/[ao]/)); varstr17="1362388064@qq.com"; console.log(str17.split(/\./));//\.转义字符 //以.或者@作为分隔符 console.log(str17.split(/[@.]/)); console.log(str17.split(/[@\.]/)); //替换replace(正则表达式,字符串) varstr18="nozuonodai"; console.log(str18.replace(/o/g,"L")); console.log(str18.replace(/[no]/g,"B")); //正则表达式里的量词 // 1.{n}重复出现至少n次 // 2.{m,n}重复出现m到n次 // 3.+匹配相当于{1,}1到无穷大 // 4.*相当于{0,}0到无穷大 // 5.?相当于{0,1}0-1可有可无 varstr19="aasdfghjklzxcvb"; //varreg19=/a{2}/g; //varreg19=/a{1,}/g; //varreg19=/a{3,6}/; //varreg19=/a+/; //varreg19=/a*/; varreg19=/a?/g; console.log(reg19.test(str19)); varstr20="youaabcad"; console.log(str20.replace(/a?/,"A")); console.log(str20.replace(/a?/g,"A")); //判断邮政编码(字符串是否满足邮政编码) //六位数,并且全部是数字 varemail="450000"; //第一种形式 // varregEmail=/^\d{6}$/g; //第二种形式 varregEmail=/^[0-9]\d{5}$/g; console.log(regEmail.test(email)); // 2.定位符例如:1.^以某某为开头$以某某为结尾 //2.\b:匹配到单词的边界 varstr21="abcde"; // varreg21=/^abc/;//以abc为开头 // varreg21=/^[abc]/;//以a或b或c为开头 varreg21=/[^abc]/;//除了a或b或c之外的字符 console.log(reg21.test(str21)); varstr22="mousemoneyeyesee"; //\b+单词(匹配到单词前边界的mo) console.log(str22.match(/\bmo/g)); //单词+\b(匹配到单词后边界的ey) console.log(str22.match(/ey\b/g)); //练习:判断一个字符串是否符合电话号码 varphoneNum="13849007907"; varregPhone=/^1[34578]\d{9}$/; console.log(regPhone.test(phoneNum)); //判断是否包含汉字 varword="longgui拉莫斯"; varregWord=/[\u4e00-\u9fa5]+/g; console.log(regWord.test(word)); //判断身份证号码18位 varnum="410184199504300000"; varregNum=/^[1-9]\d{16}[\d|x]$/; //"^\d+$"//非负整数(正整数+0) //"^[0-9]*[1-9][0-9]*$"//正整数 //"^((-\d+)|(0+))$"//非正整数(负整数+0) //"^-[0-9]*[1-9][0-9]*$"//负整数 //"^-?\d+$"//整数 //"^\d+(\.\d+)?$"//非负浮点数(正浮点数+0) //"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"//正浮点数 //"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"//非正浮点数(负浮点数+0) //"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"//负浮点 //数 //"^(-?\d+)(\.\d+)?$"//浮点数 //"^[A-Za-z]+$"//由26个英文字母组成的字符串 //"^[A-Z]+$"//由26个英文字母的大写组成的字符串 //"^[a-z]+$"//由26个英文字母的小写组成的字符串 //"^[A-Za-z0-9]+$"//由数字和26个英文字母组成的字符串 //"^\w+$"//由数字、26个英文字母或者下划线组成的字符串 //"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"//email地址 //"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"//url ///^13\d{9}$/gi手机号正则表达式 /* //判断是不是正数 /^\d{1,}$/ //判断QQ号5到11位的QQ号 /^[1-9]\d{4,10}$/ //判断是不是整数(正负整数) /^\-{0,1}\d{1,}$/ //或者 /^\-?\d+$/ //小数 /^\-?\d+\.\d+$/ */ //分组符号 //(); ///nba{2}/g----nbaa子字符串 ///(nba){2}/g-----nbanba子字符串 ///n(ba){2}/g-----nbaba子字符串 ///[nba]{2}/g-----任意包含两个字符(aabbnn //nbnaba) </script>