HTML Dog
跳至导航

正则表达式

正则表达式是 JavaScript 中的另一种数据类型,用于搜索和匹配字符串,例如,用于识别字符串是否为有效域名或替换字符串中的所有单词实例。

创建正则表达式

与对象和数组一样,存在一个由两个正斜杠定义的正则表达式字面量语法。中间的所有内容都是表达式。


var regex = /^[a-z\s]+$/;

此表达式匹配从头到尾由小写字母和空格组成的字符串。脱字符(“^”)表示字符串的开头,方括号表示花括号内的任何内容 - 从字母 a 到 z(“a-z”)、小写字母和空格,由特殊字符“\s”表示 - 可以重复一次或多次直到字符串的结尾,由美元符号(“$”)表示。

字符串有一些接受正则表达式的有用方法;这里介绍一下 matchreplace


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"