\b 匹配一个单词的开始或结束位置。如\bhello\b [\b]退格直接量 匹配的是退格 符。
. 用来匹配非换行符的任意字符。
* 前面的内容可以连续重复使用任意次以使整个表达式得到匹配(0次或多次)。
+ (1次或多次)。
? 重复0次或1次
{n} 重复n次。
{n,} 重复n次到更多次。
{n,m}重复n次到m次。
*? 重复多次,但尽可能少重复
+? 重复1次或多次,但尽可能少重复。
?? 重复0次或1次,尽可能少重复。
{n,}? 重复n次到多次,但尽可能少重复。
{n,m}? 重复n次到m次,但尽可能少重复。
[a-z0-9A-Z_]如果只有英文的话跟\w一样。
[.?!]匹配标点符号(.或?或!)。
\d 匹配一个数字。
\s 匹配任意空白符,包括空格,制表符,换行符,中文全角空格。
\w 匹配字母,数字,下划线,汉字。
^ 匹配字符串的开始。
$ 匹配字符串的结束。如是选中了多行选项,则^和$变为匹配行首和行尾。
反义
\B 匹配不是单词开头或结束的位置。
\D 匹配任意的非数字字符。
\S 匹配任意的非空白字符。
\W 匹配任意的不是字母,下划线,数字,汉字的字符。
[^abc] 匹配除了abc以外的任意字符。
选择,分组,和引用字符
| 选择。匹配的是该符号左边的子表达式或右边的子表达式。或 /\d{3}|[a-z]{4}/ 匹配的是三个数字或四个小写字母。
(...) 组合。将几个项目组合为一个单元,这几个单元可由*,+,?和|使用,而且还可以记住和这个组合匹配的字符以供此后的引用使用。
(?:...) 只组合。把项目组合到一个单元,但是并不记住与该组匹配的字符。
\n 分组引用,从\1开始,组号是从左到右计数的左括号数(可能是嵌套的)。
(?=P) 正前向声明,要求接下来的字符与模式P匹配。但是不包括匹配中的那些字符。
(?!P) 反前向声明,要求接下来的字符不与模式P匹配。
String与正则表达式有关方法
search(reg) 返回第一个与之匹配的子串的开始位置,失败则返回-1;
replace(regexp,replacement) 例:
var quote=/"([^"]*)"/g;
text.replace(quote,"``$1``");
第一个参数中有"/g",则全局替换,否则只替换第一个匹配的。第二个参数可以有子匹配。
match(regexp) 若该正则表达式中有g,该方法返回的数组包含的就是字符串中的所有匹配。
若不是全局匹配,返回的数组第一个无素为匹配的字符串,其它元素是正则表达式中用括号括起来的子表达式。为了与replace保持一致,a[n]存放的是$n的内容。
返回的数组有length属性。如果match是作用与一个非全局的正则表达式,那么它返回的数组还有其它两个属性--index--input。index为匹配字符串的起始下标。input则为原字符串。对于没有g的match与reg.exec(s)的返回值相同。
split(reg) 把字符串分隔为数组。分隔符与reg匹配。
RegExp正则表达式方法。
var reg=new RegExp(reg,flag) 两个参数为字符串,reg为正则表达式主体(表达式中的"\"应该被"\\"代替),flag为可选的。为"g","i","m"的组合。
如果检索字符串是用户输入的,不能表示为正则表达式直接量,此函数将显得重要。
reg.exec(text)此方法与text.match(reg)中的reg没有g时返回值相同。
不同之处为,exec返回的数组类型相同,无论正则表达式是否有全局属性g。
除了有index,和input属性外,reg还有lastIndex属性,被设置到紧接着匹配字符串的位置。
reg第二次调用exec方法时,它将从字符串的lastIndex处开始检索。如果没有发现任何匹配,
它将会把lastIndex重设为0(在任何时候你都可以将lastIndex设置为0,在放弃对原字符串检索面检索另一个字符串时,它将是
必要的。)
exec()的这一行为使得你可以反复调用exec()遍历一个字符串中的所有正则表达式匹配。
reg.test(text) 调用test方法等价于调用exec方法(即返回值受lastIndex影响),如果exec方法返回值不为空,test将返回true。
注意:(只有带有g的正则表达式才会发生这种特殊的lastIndex行为,没有g的正则表达式将会忽略lastIndex属性。)
RegExp对象的五个实例属性:
source:只读属性,存放正则表达式的文本。
global,ignoreCase,multiline:只读属性,布尔值,分别对应是否有g,i,m标志。
lastIndex:对于具有g的正则表达式,这个属性存储了字符串中下一次开始检索的位置。