gpt4 book ai didi

Javascript正则表达式与替换

转载 作者:太空宇宙 更新时间:2023-11-04 15:58:29 24 4
gpt4 key购买 nike

我正在开发一个关于搜索表情符号并用图标替换的项目但我在正则表达式上遇到一些问题,下面提到的是我的代码供引用:

var f = ["( :3 )" , "( :P )","\(:star:\)"];

var re = function(s){return new RegExp(s, 'g');};

现在,当我要搜索表情符号替换时,如下所示:

s = "hello :D how are you :P dwdwd";
for(var n in f){

var m;
if ((m = re(f[n]).exec(s)) !== null) {

m.forEach((match, groupIndex) => {
s = s.replace(match,"<img src='http://abs.twimg.com/emoji/v1/72x72/"+ r[n] +".png'>");
});

}}

在这种情况下,它效果很好并取代了表情符号。但它仅在 emoji 前后有空格时才替换 我应该如何替换字符串开头或结尾的 emoji !

s = ":D hello how are you :)";

这个案例不起作用。我如何编辑我的正则表达式以便能够在字符串的开头和结尾替换emoji,同时如果它出现在字符串中间并且单词之间有空格和表情符号

我的正则表达式的第二个问题是“\(:star:\)”它永远不会替换。虽然它必须用 emoji 替换单词 :star: 但我想我错过了 正则表达式 的一些东西。

最佳答案

您可以使用开始和结束 anchor 以及管道来实现此目的。例如:

/(^:3\s)|(\s:3\s)|(\s:3$)/g

^ 是一个 anchor ,它将 :3\s 与字符串的开头匹配。

$ 是一个 anchor ,它将 \s:3 匹配到字符串的末尾。

\s 匹配空格。

| 是管道运算符,充当不同捕获组之间的逻辑 OR 运算符。

关于Javascript正则表达式与替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42485857/

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