正则表达式
正则表达式是 JavaScript 中的另一种数据类型,用于搜索和匹配字符串,例如,用于识别字符串是否为有效域名或替换字符串中的所有单词实例。
创建正则表达式
与对象和数组一样,存在一个由两个正斜杠定义的正则表达式字面量语法。中间的所有内容都是表达式。
var regex = /^[a-z\s]+$/;
此表达式匹配从头到尾由小写字母和空格组成的字符串。脱字符(“^”)表示字符串的开头,方括号表示花括号内的任何内容 - 从字母 a 到 z(“a-z”)、小写字母和空格,由特殊字符“\s”表示 - 可以重复一次或多次直到字符串的结尾,由美元符号(“$”)表示。
字符串有一些接受正则表达式的有用方法;这里介绍一下 match 和 replace。
var lowerCaseString = 'some characters';
if (lowerCaseString.match(regex)) {
alert('Yes, all lowercase');
}
如果正则表达式匹配调用 match 的字符串(lowerCaseString),则 match 会产生一个真值。字符串匹配,因此执行会进入 if 语句以显示一个警报。
正则表达式也可以用来替换文本
var text = "There is everything and nothing.";
text = text.replace(/(every|no)thing/g, 'something');
// text is now "something and something"
此表达式匹配单词“everything”和单词“nothing”,并将它们的所有出现都替换为单词“something”。注意正则表达式的闭合正斜杠(“/”)之后的“g” - 这是全局标志,表示表达式应该匹配所有出现,而不仅仅是第一个,这是它默认的行为。
标志始终放在闭合斜杠之后。你可能需要使用的另一个标志是不区分大小写标志。默认情况下,正则表达式会区分大小写字母之间的差异,但这可以使用“i”标志进行更改。
var text = "Everything and nothing.";
text = text.replace(/(every|no)thing/gi, "something");
// text is now "something and something"
