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