正则 \num 如:\1, \2 匹配的结果
\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匹配两个连续的相同字符。
例子:
正则:/(a)(b)\1/。此表达式的意思大概是对第一个()匹配结果的引用
类似于匹配 aba 然后获取a,b
检验:
例子:
正则:/(a)(b)\2/。此表达式的意思大概是对第二个()匹配结果的引用
类似于匹配 abb 然后获取a,b
检验:
结合元字符: * + {} ?的使用情况
练习题
取字符串中最长的连续字符串,如果一样长,则按照ascii排序。
如: 'wwwaannnndqq'。结果是 nnnn,
如:'wwwaaadd'。结果是 aaa。
一种思路:
先取连续字符串。str.match(/(\S)\1*/g)
按字符串长度排序数组,降序
arr.sort(compare)[0]
function compare(x, y) { if (x.length === y.length) { return x.charCodeAt() - y.charCodeAt() } else { return y.length - x.length } }
比较函数compare接收两个参数:
如果第一个参数应该位于第二个参数前,则返回负数。
如果第一个参数应该位于第二个参数后,则返回正数。