其他
JavaScript 正则表达式(RegExp)实用指南(一)【译】
快速实践指南。用示例理解正则表达式。
当初次见到正则表达式时,它们可能看起来像是乱七八糟的随机字符串。尽管它们看起来语法有些混乱,但它们其实是非常有用。
正确理解正则表达式能帮助你成为更有效的程序员。为了全面了解正则表达式世界,首先需要学习基础概念,然后在其基础上扩展。
事不宜迟,让我们开始吧:)
什么是正则表达式?
正则表达式是用于匹配字符串中字符组合的模式。它们构成了自己的一门小语言,是许多编程语言(如Javascript,Perl,Python,Php和Java)的一部分。
正则表达式帮助你可以检查例如电子邮件地址或密码之类的字符串是否符合一定的模式,进一步处理相关信息和提示。
创建一个正则表达式
有两种方法可以在Javascript中创建正则表达式。可以使用RegExp
构造函数创建它,也可以使用两个正斜杠(/
)。
正则表达式构造函数:
语法:new RegExp(pattern [,flags])
例如:
var regexConst = new RegExp('abc');
正则表达式字面量:
语法:/pattern/flags
例如:
var regexLiteral = /abc/;
这些标志(flags)是可选的,我将在本文后面解释。
在某些情况下,可能想动态创建正则表达式,在这种情况下,正则表达式 字面量不起作用,因此必须使用正则表达式构造函数。
无论选择哪种方法,结果都将是一个正则表达式对象。两个正则表达式对象都将具有相同的方法和属性。
由于在上面的示例中使用两个正斜杠,因此,如果要将正斜杠(/
)用作正则表达式的一部分,则必须使用反斜杠(\
)进行转义。
正则表达式方法
测试正则表达式的方法主要有两种。
RegExp.prototype.test()
一个在字符串中测试是否匹配的RegExp方法,它返回 true
或 false
。
例如:
var regex = /hello/;
var str = 'hello world';
var result = regex.test(str);
console.log(result);
// returns true
RegExp.prototype.exec()
一个在字符串中执行查找匹配的RegExp方法,它返回一个数组(未匹配到则返回 null
)。
例如:
var regex = /hello/;
var str = 'hello world';
var result = regex.exec(str);
console.log(result);
// returns [ 'hello', index: 0, input: 'hello world', groups: undefined ]
// 'hello' -> 匹配的全部字符串
// index: -> 匹配到的字符位于原始字符串的基于0的索引值
// input: -> 原始字符串
我们将在本文使用 test()
方法。
为你推荐