JavaScript 正则表达式 – ^.{2}$
简介
JavaScript 中的正则表达式是一种强大的字符串匹配工具,可以快速地寻找符合规则的字符串。在正则表达式中,^
表示字符串的开始,.
表示匹配任意单个字符,{2}
表示匹配前面的字符恰好出现2次,$
表示字符串的末尾。根据这个规则,^.{2}$
可以匹配长度为2的任意字符串。
正则表达式的标志
JavaScript 中的正则表达式可以加上一些标志,对匹配进行更加精细的控制。其中,g
表示全局匹配,i
表示不区分大小写的匹配,m
表示多行匹配。例如,如果要将字符串s中所有的长度为2的字符串匹配出来,可以使用如下的正则表达式:
var s = "abc de fg";
var re = /(^|\s).{2}($|\s)/g;
var result = s.match(re);
console.log(result); // ['abc', 'de', 'fg']
在这个正则表达式中,(^|\s)
表示以空格或者字符串开始的匹配,($|\s)
表示以空格或者字符串结束的匹配,g
标志表示全局匹配。
开始和结束匹配
在正则表达式中,^
和$
分别表示字符串的开始和结束。例如,要匹配以字母开头的字符串,可以使用如下正则表达式:
var s = "hello world";
var re = /^[a-zA-Z]/;
console.log(re.test(s)); // true
在这个正则表达式中,^[a-zA-Z]
表示以字母开头的匹配。
要匹配字符串结束的位置,可以使用$
符号。例如,要匹配以数字结尾的字符串,可以使用如下正则表达式:
var s = "hello 123";
var re = /\d+$/;
console.log(re.test(s)); // true
在这个正则表达式中,\d+$
表示以数字结尾的匹配。
模式匹配
在正则表达式中,.*
表示匹配任意字符任意次数,.*?
表示匹配任意字符最少次数。例如,要匹配字符串中第一个数字的位置,可以使用如下正则表达式:
var s = "hello 123";
var re = /(\d+)/;
var result = s.match(re);
console.log(result); // ["123", "123", index: 6, input: "hello 123", groups: undefined]
在这个正则表达式中,(\d+)
表示匹配连续的数字。如果要匹配非连续的数字,可以使用如下正则表达式:
var s = "hello 123 456";
var re = /(\d+)\D+(\d+)/;
var result = s.match(re);
console.log(result); // ["123 456", "123", "456", index: 6, input: "hello 123 456", groups: undefined]
在这个正则表达式中,(\d+)\D+(\d+)
表示匹配两个数字之间可能有非数字的字符。\D
表示不是数字的字符。
转义符号
如果要匹配正则表达式中的特殊字符,需要使用转义符号\
。例如,要匹配字符串中所有的.
字符,可以使用如下正则表达式:
var s = "abc.def";
var re = /\./g;
var result = s.replace(re, "_");
console.log(result); // "abc_def"
在这个正则表达式中,\.
表示匹配.
字符。
结论
正则表达式是字符串匹配的利器,可以大大提高编程的效率。在 JavaScript 中,可以使用 /
包围正则表达式,并加上标志以控制匹配。在编写正则表达式时,需要注意转义字符和特殊字符的使用,共同创造出更加优秀的代码。