JavaScript 中正则的性能比想象中的低很多。能用字符串方法搞定的,尽量别用正则。------玉伯
抛开性能不谈,一起来看看正则表达式怎么用吧!
先看看JavaScript正则表达式中一些特殊字符的含义:
| 字符 | 含义 |
| ^ | 匹配以某些字符开头的字符串 |
| $ | 匹配以某些字符结尾的字符串 |
| ? | 匹配出现0次或1次的字符或字符串 |
| * | 匹配出现0次或n次的字符或字符串 |
| + | 匹配出现1次或n次的字符或字符串 |
| {n} | 精确匹配出现n次的字符或字符串 |
| {n,} | 匹配出现>=n次的字符或字符串 |
| {n,m} | 匹配出现 >=n次 and <=m次 的字符或字符串 |
| . | 匹配除了换行符外的字符 |
| [...] | 匹配括号里的任意字符 |
| [^...] | 匹配除了括号里的字符外的任意字符 |
| 匹配一个单词的边界 | |
| B | 匹配一个单词的非边界 |
| d | 匹配数字0-9 |
| D | 匹配任何非数字的字符 |
| w | 匹配 a-z A-Z 0-9 _ |
| W | 匹配 非字母、非数字、非下划线 |
| 匹配换行符 | |
| s | 匹配空格符 |
| S | 匹配非空格符 |
| 匹配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));
//--><!]]>
结果:
2.返回匹配的值 exec()
示例:
//<![CDATA[ var str="PrimitiveJavaScript is my JavaScript Special column."; var pattern=/JavaScript/; document.write(pattern.exec(str)); //--><!]]>
结果:
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