JavaScript 正则表达式
Posted Mr hu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 正则表达式相关的知识,希望对你有一定的参考价值。
正则基础
正则表达式的使用
在javascript中创建正则表达式对象的方式有两种:第一种,使用双斜杠将表达式括起来,即 /正则表达式/。第二种,new 一个,即 new RegExp(‘正则表达式‘, [‘匹配方式‘])。其中第二种方式是以字符串形式传参,所以要注意字符串中的转义问题,例如要使用 \ 来表示一个 。
其中匹配方式可为:g,表示全局匹配;i,表示忽略大小写;m,表示执行多行匹配。
var r1 = /w+/; var r2 = RegExp(‘\w+‘); console.log(typeof r1); // object console.log(typeof r2); // object console.log(r1); // /w+/ console.log(r2); // /w+/
对于特殊字符需要使用 ‘‘ 进行转义,例如表示 - 要使用 - 来表示。
单个字符匹配
字符 | 含义 |
. | 除了回车符和换行符之外的所有字符 |
d | 数字字符 |
D | 非数字字符 |
s | 空白符包括空格,制表符,换行符和换页符 |
S | 非空白符 |
w | 单词字符(字母、数字、下划线) |
W | 非单词字符 |
使用量词匹配多个字符
字符 | 含义 |
? | 出现零次或一次(最多出现一次) |
+ | 出现一次或多次(至少出现一次) |
* | 出现零次或多次(任意次) |
{n} | 出现n次 |
{n,m} | 出现n到m次 |
{n,} | 至少出现n次 |
单个字符范围
[] | 表示一个字符的集合 |
在 [] 中使用 ^ 可以排除没有 ^ 时字符集中的内容。使用 - 可以表示范围,例如 [0-9] 表示数字字符。使用 | 可以表示或。
边界匹配
字符 | 含义 |
^n | 匹配开头为n的字符串 |
n$ | 匹配结尾为n的字符串 |
^js$ 只能匹配字符串 ‘js‘ 。
分组
我们可以使用小括号 () 对表达式进行分组,分组后量词和边界匹配将作用于一组。
var r1 = /Do you know{2}/; //只将w扩展2次 var r2 = /(Do you know){2}/; //将‘Do you know‘扩展2次 console.log(r1.test(‘Do you knowDo you know‘)); //false console.log(r2.test(‘Do you knowDo you know‘)); //true
test()方法
用于判断给定字符串是否和正则表达式匹配。
var r = RegExp(‘\d+‘); console.log(r.test(‘123‘)); //true
exec()方法
exec()
方法在匹配成功后,会返回一个Array
,第一个元素是正则表达式匹配到的整个字符串,后面的元素表示匹配成功的子串。exec()
方法在匹配失败时返回null
。
应用实例
使用 正则 + split() 实现精确切分字符串
// 获取字符串中非空白字符 var str = ‘a b c d‘; console.log(str.split(/s+/)); //[ ‘a‘, ‘b‘, ‘c‘, ‘d‘ ]
以上是关于JavaScript 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript中 正则表达式的使用 及 常用正则表达式