正则 \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接收两个参数:

如果第一个参数应该位于第二个参数前,则返回负数。

如果第一个参数应该位于第二个参数后,则返回正数。

 

 

posted @ 2019-11-14 21:56  chulai9527  阅读(1540)  评论(0编辑  收藏  举报