日期:2014-05-16 浏览次数:20423 次
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /\bc/; str='crazy'; execReg(reg,str); </script>
?返回结果c。匹配到了左边界的c字符。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /\bc/; str='维生素c'; execReg(reg,str); </script>
?仍然返回c,不过这次返回的是右侧边界的c。
?
reg = /\bc/; str='bcb'; execReg(reg,str);?
这次匹配失败,因为bcb字符串中的c被夹在中间,既不在左边界也不再右边界。
与\b对应\B表示非边界。例如:
reg = /\Bc/; str='bcb'; execReg(reg,str);
?这次会成功地匹配到bcb中的c。然而
\B值匹配非边界
?
\d表示数字的意思,相反,\D表示非数字。例如:
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /\d/; str='crazy8'; execReg(reg,str) </script>
?返回的匹配结果为8,因为它是第一个数字字符。
reg = /\D/; str='crazy8'; execReg(reg,str);
?返回c,第一个非数字字符。
\f匹配换页符,\n匹配换行符,\r匹配回车,\t匹配制表符,\v匹配垂直制表符。
\s匹配单个空格,等同于[\f\n\r\t\v]。例如:
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /\s.+/; str='This is a test String.'; execReg(reg,str); </script>
?返回“is a test String.”,正则的意思是匹配第一个空格以及其后的所有非换行字符。
同样,\S表示非空格字符。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /\S+/; str='This is a test String.'; execReg(reg,str); </script>
?匹配结果为This,当遇到第一个空格之后,正则就停止匹配了。
?
\w表示单词字符,等同于字符集合[a-zA-Z0-9_]。例如:
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /\w+/; str='blueidea'; execReg(reg,str); </script>
?返回完整的blueidea字符串,因为所有字符都是单词字符。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /\w+/; str='.className'; execReg(reg,str); </script>
?结果显示匹配了字符串中的className,只有第一个“.”——唯一的非单词字符没有匹配。
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /\w+/; str='中文如何?'; execReg(reg,str); </script>?
试图用单词字符去匹配中文自然行不通了,返回null。
\W表示非单词字符,等效于[^a-zA-Z0-9_]
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /\W+/; str='中文如何?'; execReg(reg,str); </script>
?返回完整的字符串,因为,无论是中文和“?”都算作是非单词字符。
?
形式如下:/(子正则表达式)\1/
依旧用例子来说明:
1.
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /\w/; str='crazygrass'; execReg(reg,str); </script>?
返回b。
2.
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /(\w)(\w)/; str='crazygrass'; execReg(reg,str); </script>
?返回结果:cr,c,r
cr是整个正则匹配的内容,c是第一个括号里的子正则表达式匹配的内容,r是第二个括号匹配的内容。
3.
<script type="text/javascript"> function execReg(reg,str){ var result = reg.exec(str); alert(result); } reg = /(\w)\1/; str='crazygrass'; execReg(reg,st