We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在前几天的工作中需要确定一个字符串是否是html片段,一下就想到正则最简单啊,然而到写的时候发现,正则已然忘的差不多了,就趁此机会恶补了一下,准备周末总结一下,然而准备写的时候,发现正则已有同事写过了,在此,就总结一些同事没有提到的,作为同事正则的一个补充吧。
“?”在正则中表示的意思非常多,大概有4中情况:
var reg=/a?/;//表示a出现0-1次
var str = 'aaaabcd'; var reg=/a+/;//匹配str可匹配4个a var reg1=/a+?/;//匹配str只能匹配一个a
(?:表达式) //表示在用正则的exec方法时,不会捕获此子正则中的内容
var reg=/aaa(?=b)/; var reg1=/abc(?!d)/; var str=/aaab/; var str1=/abcd/ reg.exec(str);//返回["aaa"] reg1.exec(str1);//返回null
在正则中表示“或”的含义的符号有两个“[]”和“|”;其中有一些值得注意的地方;
var reg=/^g|food$/;//表示以“g”开头或者以“food”结尾 var reg1=/^(g|f)ood$/;//表示“good”或“food”
var reg=/[!-)]/; reg.test("$");//true
var reg=/(\w)(\w)(\w)/; var str="abc.defghijklmn.xyz"; var ary=reg.exec(str); console.log(ary);//结果为["abc", "a", "b", "c", index: 0, input: "abc.defghijklmn.xyz"] ary=reg.exec(str); console.log(ary);//结果同上 ary=reg.exec(str); console.log(ary);//结果同上
var reg=/(\w)(\w)(\w)/g; var str="abc.defghijklmn.xyz"; var ary=reg.exec(str); console.log(ary);//结果为["abc", "a", "b", "c", index: 0, input: "abc.defghijklmn.xyz"] ary=reg.test(str); console.log(ary);//结果为true ary=reg.exec(str); console.log(ary);//结果为["ghi", "g", "h", "i", index: 7, input: "abc.defghijklmn.xyz"] ary=reg.exec(str); console.log(ary);//结果为["jkl", "j", "k", "l", index: 10, input: "abc.defghijklmn.xyz"]
由以上两个例子可以明显的看出,在正则加上了“g”修饰符之后,每次执行exec方法(也可以是test方法)之后,下次匹配的起点会更改,那如何知道从何时开始的呢,那就是正则的lastIndex属性发挥作用了,前提是正则拥有了“g”修饰符,值得注意的是lastIndex是正则对象的属性,而例子中控制台输出的是执行正则方法后得到的数组(例子中ary)的属性。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
正则深入
在前几天的工作中需要确定一个字符串是否是html片段,一下就想到正则最简单啊,然而到写的时候发现,正则已然忘的差不多了,就趁此机会恶补了一下,准备周末总结一下,然而准备写的时候,发现正则已有同事写过了,在此,就总结一些同事没有提到的,作为同事正则的一个补充吧。
问号(?)
“?”在正则中表示的意思非常多,大概有4中情况:
或
在正则中表示“或”的含义的符号有两个“[]”和“|”;其中有一些值得注意的地方;
exec方法的lastIndex属性
先看例子:由以上两个例子可以明显的看出,在正则加上了“g”修饰符之后,每次执行exec方法(也可以是test方法)之后,下次匹配的起点会更改,那如何知道从何时开始的呢,那就是正则的lastIndex属性发挥作用了,前提是正则拥有了“g”修饰符,值得注意的是lastIndex是正则对象的属性,而例子中控制台输出的是执行正则方法后得到的数组(例子中ary)的属性。
The text was updated successfully, but these errors were encountered: