gpt4 book ai didi

javascript - JS获取一个字符串经过表达式替换几次

转载 作者:行者123 更新时间:2023-11-28 07:43:02 25 4
gpt4 key购买 nike

我想要一种通过不同的正则表达式和不同的替换来获取文本/字符串的方法

我可以轻松地在 php 中执行此操作:

$pattern[] = "regex"; $replacement[] = "replace string";
$pattern[] = "regex"; $replacement[] = "replace string";
$pattern[] = "regex"; $replacement[] = "replace string";
$pattern[] = "regex"; $replacement[] = "replace string";

echo preg_replace($pattern,$replacement,$string);

我还在学习 javascript,我想 .replace() 但有没有办法做一个表达式数组?一遍又一遍地重复 .replace() 并不具有技术性。特别是如果它是一个很大的表达式列表。

最佳答案

这应该适合你。

它要求两个数组具有相同数量的元素。

function REArray(contents,sArray,rArray) {
if(sArray.length == rArray.length) {
for(i=0;i<sArray.length;i++) {
rx_this = new RegExp(sArray[i],"g");
contents = contents.replace(rx_this,rArray[i]);
}
}
return contents;
}

var sx = ["cat","best","\\d"];
var rx = ["dog","worst","7"];
console.log(REArray("My cat is the best. He is 3.",sx,rx));

在 JavaScript 中将正则表达式存储在变量中时,必须转义反斜杠。 (\w 变为 \\w\[b\] 变为 \\[b\\], ETC)。读起来可能会很头疼。 (匹配转义斜杠 \\ 看起来像 \\\\)。

有些人喜欢在正则表达式中使用 / 并使用替换将其转换为 \\

类似这样的事情

var rx_this;

function REArray(contents,sArray,rArray) {
if(sArray.length == rArray.length) {
for(i=0;i<sArray.length;i++) {
rx_this = sArray[i].replace(/\//g,"\\");
rx_this = new RegExp(rx_this,"g");
contents = contents.replace(rx_this,rArray[i]);
}
}
return contents;
}

var sx = ["cat","best/.","[3]"];
var rx = ["dog","worst","7"];
console.log(REArray("My cat is the best. He is 3.",sx,rx));

关于javascript - JS获取一个字符串经过表达式替换几次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27794445/

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