JavaScript 中正则的性能比想象中的低不少。能用字符串方法搞定的,尽可能别用正则。------玉伯
javascript
抛开性能不谈,一块儿来看看正则表达式怎么用吧!html
先看看JavaScript正则表达式中一些特殊字符的含义:java
字符 | 含义 |
^ | 匹配以某些字符开头的字符串 |
$ | 匹配以某些字符结尾的字符串 |
? | 匹配出现0次或1次的字符或字符串 |
* | 匹配出现0次或n次的字符或字符串 |
+ | 匹配出现1次或n次的字符或字符串 |
{n} | 精确匹配出现n次的字符或字符串 |
{n,} | 匹配出现>=n次的字符或字符串 |
{n,m} | 匹配出现 >=n次 and <=m次 的字符或字符串 |
. | 匹配除了换行符外的字符 |
[...] | 匹配括号里的任意字符 |
[^...] | 匹配除了括号里的字符外的任意字符 |
\b | 匹配一个单词的边界 |
\B | 匹配一个单词的非边界 |
\d | 匹配数字0-9 |
\D | 匹配任何非数字的字符 |
\w | 匹配 a-z A-Z 0-9 _ |
\W | 匹配 非字母、非数字、非下划线 |
\n | 匹配换行符 |
\s | 匹配空格符 |
\S | 匹配非空格符 |
\t | 匹配Tab |
字符 | 含义 |
g | 全局匹配 |
m | 多行匹配 |
i | 忽略大小写 |
1.看是否匹配 test()正则表达式
若是匹配返回true 不匹配则返回false数组
示例:性能
//<![CDATA[ var str="PrimitiveJavaScript is my JavaScript Special column."; var pattern1=/Java/; document.write(pattern1.test(str)); document.write("<br/>"); var pattern2=/java/; document.write(pattern2.test(str)); //--><!]]>
结果:spa
2.返回匹配的值 exec().net
示例:code
//<![CDATA[ var str="PrimitiveJavaScript is my JavaScript Special column."; var pattern=/JavaScript/; document.write(pattern.exec(str)); //--><!]]>
结果:htm
JavaScript
3.返回匹配的数组 match()
示例:
//<![CDATA[ var str="PrimitiveJavaScript is my JavaScript Special column."; var pattern=/JavaScript/g; //全局匹配 var result=str.match(pattern); document.write(result[0]); document.write("<br/>"); document.write(result[1]); //--><!]]>
结果:
掌握这三个方法,再加上字符串的知识,就能够处理各类各样的问题啦。
仍是要多加练习,融会贯通。
就写到这了。
个人新浪微博:X--zhang
专栏地址:原生JavaScript
欢迎吐槽,欢迎拍砖!
文 / X--zhang