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>