JavaScript的正则表达式是一个非常难以理解的代码(可以说是天书),但是,只要你学习了正则表达式,你就觉得正则表达式非常简单。
下面先给大家看一段正则表达式:
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/)
是不是像天书呢?
下面我们来解析这段代码:
首先是RegExp:
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/)
RegExp表示这是一个正则表达式
然后我们就开始分析括号内的“天书”:
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/) /表示正则表达式的开头
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/) ^表示从字符串开头进行匹配
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/) \d表示要与一位数字匹配
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/) {3}表示要匹配三位数字
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/) -?表示与一个"-"符号或者和空字符串匹配(比如xxx-xxx 或者 xxxxxx)
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/) \d同上
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/) {4}表示要与4位数字匹配
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/) -? \d {4} 同上
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/) $表示与字符串末尾匹配
var test = new RegExp(/^\d{3}-?\d{4}-?\d{4}$/) /表示结束正则表达式
如果你已经知道了这些“天书”的作用,那么也不难猜出这个正则表达式的作用:检测一个是否为中国电话号码的正则表达式
那么如何使用正则表达式呢?请看下面:
// 首先需要有一个要搜索的字符串:
var PhoneNumber = "123-4567-8910";
// 然后判断这个字符串是否与正则表达式匹配,对这个字符串调用方法match:
var search = PhoneNumber.match(test);
// 结果是一个数组,其中包含与正则表达式匹配的子串,如果结果为null,就说明它与正则表达式不匹配,下面是一个失败的例子:
var invalid = "1234_56789_12345";
var search2 = invalid.match(test);