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中 正则表达式的使用 及 常用正则表达式

Javascript 清理 URL 正则表达式

通过 Java 正则表达式提取 semver 版本字符串的片段

攻破难啃的骨头-正则表达式(转)

text 正则表达式片段

markdown 正则表达式模式片段