3.4.2 RegExp

字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。

比如:开发中经常需要判断手机号或者邮箱等字符串是否合法。最简单的方法就是用正则表达式进行判断。

正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则该字符串就是不合法的。

在正则表达式中,如果直接给出字符,就是精确匹配。用\d可以匹配一个数字,\w可以匹配一个字母或数字,所以:

  • '00\d'可以匹配'007',但无法匹配'00A';
  • '\d\d\d'可以匹配'010';
  • '\w\w'可以匹配'js';

还有很多匹配规则,本书就不一一列举了,大家可以查阅文档。 http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

有了准备知识,我们就可以在JavaScript中使用正则表达式了。

JavaScript有两种方式创建一个正则表达式:

  • 第一种方式是直接通过/正则表达式/写出来
  • 第二种方式是通过new RegExp('正则表达式')创建一个RegExp对象。

两种写法是一样的:

var re1 = /ABC\-001/;
var re2 = new RegExp('ABC\\-001');

re1; // /ABC\-001/
re2; // /ABC\-001/

注意,如果使用第二种写法,因为字符串的转义问题,字符串的两个\\实际上是一个\

RegExp对象的test()方法用于测试给定的字符串是否符合条件,下面是判断正则表达式是否匹配:

var re = /^\d{3}\-\d{3,8}$/;
re.test('010-12345'); // true
re.test('010-1234x'); // false
re.test('010 12345'); // false

results matching ""

    No results matching ""