1.什么是正则?
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。可以理解为正则是一个强大的检索工具,可以检索自定义的要求文串。
2.正则的格式
正则写在//内。一般用reg为名的变量存着。
3.正则括号总结
小括号():小括号里的内容只能为字符串,一般可以表示一组,可以与或(|)搭配。例如:(com|cn|net)表示只能是com或cn或net。
中括号[]:中括号只能单个匹配,也可以表示一些特定的集合。例如[a-z][0-9]分别表示小写字母和数字。而中括号中的[abc]表示每个字母所在位置只能是它本身,即只能以abc出现。不像小括号拥有“或”的意思。
大括号{}:大括号的功能只有一个,就是表示次数。比如[a-c]{2}意思就是匹配a-c之间的一个字母出现且只出现两次。
4.正则方法
对于正则,常用的方法基本有三个。分别是test,compile和exec。
1.Text
test方法,该方法用来测试某个字符串是否与正则匹配,匹配就返回true,否则返回false。
var reg=/boy(s)?\s+and\s+girl(s)?/gi;
console.log(reg.test('boy and girl'));
2.compile
该方法的作用是对正则表达式进行编译,提高正则的使用效率,适合于对一个正则多次调用的情况下,如果对一个正则只使用一两次,那么该方法没有特别显著的效应。
3.exec
exec() 方法用于检索字符串中的正则表达式的匹配。并返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
另外,一些字符串方法中也可以通过代入正则来提高准确性,如search(),replace(),split(),match()。
5.表达式全集
字符 |
描述 |
\ |
将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。串行“\\”匹配“\”而“\(”则匹配“(”。 |
^ |
匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 |
$ |
匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。 |
* |
匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,}。 |
+ |
匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。 |
? |
匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等价于{0,1}。 |
|