JavaScript 中正则的性能比想象中的低很多。能用字符串方法搞定的,尽量别用正则。------玉伯
抛开性能不谈,一起来看看正则表达式怎么用吧!
先看看JavaScript正则表达式中一些特殊字符的含义:
字符 | 含义 |
^ | 匹配以某些字符开头的字符串 |
$ | 匹配以某些字符结尾的字符串 |
? | 匹配出现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));
//--><!]]>
结果:
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