码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 正则表达式

时间:2019-04-20 00:22:06      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:正则表达式   创建   大小写   基础   code   忽略   包括   false   空白   

正则基础

 

正则表达式的使用

在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\tc   \nd‘;
console.log(str.split(/\s+/));    //[ ‘a‘, ‘b‘, ‘c‘, ‘d‘ ]

 

JavaScript 正则表达式

标签:正则表达式   创建   大小写   基础   code   忽略   包括   false   空白   

原文地址:https://www.cnblogs.com/huwt/p/10739390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!