前端队长の技术博客

  1. 答案✔:
  2. 例子1:
  3. 例子2:
  4. 实际应用

答案✔:

// 正则表达时,贪婪模式,.*会一直匹配到最后一个
str.replace(/(.*)and/, '$1but');

例子1:

$1–$9 是RegExp 自带的,代表的是 分组,即小括号里面的小正则捕获到的内容。

/^(\d{4})[\/-](\d{1,2})[\/-](\d{1,2})$/
比如这个 简单的匹配 年月日的正则,
我们就可以通过 `$1`, `$2`, `$3` 获取到并进行处理。

例子2:

var url="http://www.qidian.com/BookReader/1017141,20361055.aspx";
var reg=new RegExp("(http://www.qidian.com/BookReader/)(\\d+),(\\d+).aspx","gmi");

你可能注意到了,在reg正则表达式里的几对”()”,比如("(http://www.qidian.com/BookReader/)(\\d+),$n就指的是匹配到的第n个括号里的内容。

$n主要是用在后面的程序需要引用前面的正则匹配到的内容时。

在这个例子里:

$1 : http://www.qidian.com/BookReader/
$2 : 1017141
$3 : 20361055

实际应用

<span v-html="item.replace(/(.*)<div>/, '$1')" v-if="i===0"></span>

删除字符串最后一个<div>标签。

image

由于填空题是使用三个下划线进行字符串截断,截断的第一个字符串中,因为使用的是wangeditor,会有一个未成对的<div>,然后在使用v-html的时候,会自动补全剩下的</div>,导致文字换行,所以我需要把未成对的<div>找到并删除,由于这个字符串前面可能还有div标签,所以只能从后面找,于是用了上面的方法,找到并删除这个残缺的div标签。

(完)