JavaScript正则表达式

JavaScript中有两种方式的正则表达式,一种是RegExp对象的形式,另一种是直接量形式的。正则表达式在JavaScript中被认为是一个对象, RegExp提供了两个正则方法,它们分别是RegExp.exec()和RegExp.test()。 RegExp.exec(str)会返回一个数组或者null(如果字符串没有匹配表达式),该数组包含了匹配的结果。数组索引为0的值是整个表达式匹配的结果,而从1开始的值为子表达式匹配的结果。 RegExp.test(str)返回一个布尔值,如果字符串匹配表达式,那么返回true,否则返回false。

RegExp对象形式的正则表达式

new RegExp(pattern, attributes)

直接量形式的正则表达式

/pattern/attributes
pattern为任何合法的正则表达式,attributes的值为'g', 'i', 'm'。g的意思是全局匹配, i的意思是忽略大小写, m的意思是多行匹配。 匹配手机号码(搜索以1开头,并且长度为11的手机号码)
phone = '12345678900';
matches = /(1[\d]{2})([\d]{3})([\d]{5})/.exec(phone);
// matches = ["12345678900", "123", "456", "78900"]
返回的matches数组的第一项为整个正则表达式匹配的结果,第二项以后是每个子表达式匹配的结果。这个匹配手机号的表达式一共分成三个子表达式。 检测字符串中是否出现javascript单词(忽略大小写)
str = 'hello, this is javascript regular';
/javascript/i.test(str); // true
编程语言提供了什么样的函数接口是次要的,关键是对正则表达式本身的掌握程度。如果本身对正则表达式有深刻的理解,那么移植起来相对容易一些。毕竟正则表达式似乎作为一种规范存在, 编程语言只是对其进行了实现和扩展而已。 JavaScript中的String对象拥有几个RegExp对象作为参数的方法。分别是String.replace, String.match, String.split, String.search。

现在还没有评论

留下您的大名