gpt4 book ai didi

javascript - 使用 Jquery(或直接 JS)查找并替换 Regex

转载 作者:行者123 更新时间:2023-12-02 17:09:07 26 4
gpt4 key购买 nike

这是我的示例字符串:

<p>Whatever #591118</p>

这是我想要的输出:

p='<p>Whatever <i class="dn">591118<i></p>';

这是我正在尝试编写的正则表达式:

r="(.*)#([0-9]+(?=<))(<.*)$";

如果我:

alert(p.match(r));

它打印:

<p>Whatever #591118</p>,<p>Whatever ,591118,</p>

我想使用.replace'$1<i class="dn">$2<i>$3'

但是我对正则表达式和jquery的了解就到此为止......

感谢您的帮助。

最佳答案

您可以使用下面的代码根据匹配的正则表达式替换部分原始字符串。代码(我认为)是不言自明的。

var regex = /(.*)#([0-9]+(?=<))(<.*)$/; 
var str = '<p>Whatever #591118</p>';
var toReplace = '$1<i class="dn">$2<i>$3';

var result = str.replace(regex, toReplace);
console.log(result);

输出: <p>Whatever <i class="dn">591118<i></p>

Demo

正则表达式说明:(为了 future 读者的利益)

(.*) - 第一个捕获组 ( $1 ) 匹配任意数量的非换行符(零个或多个)。对于上面的示例,这将等于 <p>Whatever .

([0-9]+(?=<)) - 第二个捕获组 ( $2 ),它是以一个数字字符(即 0-9)开头的任何字符串,并且正向前瞻性捕获所有字符,直到 <遇到字符。对于上面的示例,这将等于 591118 .

(<.*) - 第三个捕获组( $3 ),基本上是所有以 < 开头的剩余字符。对于上面的示例,这等于 </p> .

关于javascript - 使用 Jquery(或直接 JS)查找并替换 Regex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24971617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com