正则表达式

正则表达式(regular expression)是一个描述字符模式的对象。JavaScript的RegExp类表示正则表达式,String和RegExp都定义了方法。

1. 正则表达式的定义

正则表达式有两种方法定义:

  • 一种是使用正则表达式直接量,将其包含在一对斜杠(/)之间的字符。
var pattern = /s$/;
  • 另一种是使用RegExp()构造函数。
var pattern = new RegExp('s');

上面两种方法是等价的,用来匹配所有以字母“s”结尾的字符串。

正则表达式的模式规则是由一个字符序列组成的,所有字母和数字都是按照字面含义进行匹配的。

2 .字符类

将直接量字符单独放进方括号就组成了字符类(character class)。一个字符类可以匹配它所包含的任意字符。比如:/[abc]/就和字母“a”、“b”、“c”中的任意一个都匹配。

我们还可以通过“^”符号来定义否定字符类,它匹配所有不包含括号内的字符。定义否定字符类时,将一个“^”符号作为左方括号内的第一个字符。比如: /[^abc]/ 匹配的是“a”、“b”、“c”之外的所有字符。’

字符类还可以使用连字符来表示字符范围。比如要匹配拉丁字母表中的小写字母,可以使用 /[a-z]/ ,要匹配拉丁字母表中的任何字母和数字,则使用 /[a-zA-Z0-9]/ 。

注意:字符类的连字符必须在头尾两个字符中间,才有特殊含义,否则就是字面含义。比如,[-9]就表示匹配连字符和9,而不是匹配0到9。

3.指定匹配位置

除了匹配字符串中的字符外,有些正则表达式的元素匹配的是字符之间的位置,亦可称为正则表达式的锚。比如:\b匹配一个单词的边界,即位于\w(ASCII单词)字符和\W(非ASCII单词)之间的边界,或位于一个ASCII单词与字符串的开始或结尾之间的边界。

 

posted @ 2019-07-28 11:22  仰望星空e  阅读(128)  评论(0编辑  收藏  举报