gpt4 book ai didi

javascript - 替换文本中的单词

转载 作者:行者123 更新时间:2023-12-01 03:36:03 26 4
gpt4 key购买 nike

我正在编写 Web 应用程序的一部分,在其中替换文本中的单词。我使用了替换功能,但替换了我不想要的文本(下面是一个示例)。现在我已经实现了一个功能,通过将文本拆分为单词,但是当我想替换文本中的两个连续单词时。显然,这是行不通的。

第一个选项:

var str = "iRobot Roomba balbalblablbalbla";

str.replace(/robot/gi, 'Robota');

output -> iRobota Roomba ........(fail !)

第二个代码:

var patterns: [ 
{
match: 'robot',
replacement: 'Robota'
},{
match: 'ipad',
replacement: 'tablet'
},
......... more
];

var temp = str.split(' ');

var newStr = temp.map(function(el) {

patterns.forEach(function(item) {

if( el.search( new RegExp( '^'+item.match+'$', 'gi') ) > -1 ) {

el = item.replacement;

return el;
}
});

return el;
});

return newStr.join(' ');

最后的代码不会替换两个单词的文本,因为检查只生成一个。我一直在互联网上搜索一些解决方案,但没有找到类似的东西。

我只是碰巧对单词进行了分割来检查(item.match),如果它有多个元素,则创建一个时间变量并检查连续的元素,但我猜它会影响性能,我不知道如果有更好、更简单的选择。

有人能想到更好的选择吗?

谢谢!

最佳答案

据我了解,您只想匹配整个单词而不是子字符串。

解决方案是在正则表达式中添加单词边界:

str.replace(/\brobot\b/gi, 'Robota');

这只会匹配整个“机器人”单词。

关于javascript - 替换文本中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44284238/

26 4 0
文章推荐: python - Mel 到 Python 的难度
文章推荐: ajax - Ajax中的CORS请求具有IdentityServer3授权的MVC Controller
文章推荐: jquery - 将新标签附加到特定元素之后的
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com