繁体   English   中英

替换字符串中的单词

[英]Replace A word In A String

我需要替换 _New+Delivery 这个词; 在带逗号 (',') 的字符串中

示例输入字符串: XP_New+Delivery;HP_New+Delivery;LA_New;

预计 output: XP,HP,LA_New;

但它返回与 output 相同的输入,没有替换任何想法?

 function myFunction() { var str = document.getElementById("demo").innerHTML; var res = str.replace(new RegExp('_New+Delivery;', 'gi'), ','); document.getElementById("demo").innerHTML = res; }
 <p id="demo">XP_New+Delivery;HP_New+Delivery;LA_New;</p> <button onclick="myFunction()">Try it</button>

可能不是完美的方法,但它会起作用。

 const sampleInput = "XP_New+Delivery;HP_New+Delivery;LA_New;"; const result = sampleInput.split('_New+Delivery;').join(','); console.log(result)
对于您的问题,请使用以下代码

 function myFunction() { var str = document.getElementById("demo").innerHTML; var res = str.split('_New+Delivery;').join(','); document.getElementById("demo").innerHTML = res; }
 <p id="demo">XP_New+Delivery;HP_New+Delivery;LA_New;</p> <button onclick="myFunction()">Try it</button>

正则表达式中的加号表示“匹配一次到无限次,尽可能多次,根据需要回馈”。 要按原样使用加号,您需要使用特殊的\对其进行转义。

new RegExp('_New\+Delivery;', 'gi')

但在您的示例中,反斜杠由读取字符串的代码解释,而不是传递给正则表达式解析器。 您需要双重转义加号:

new RegExp('_New\\+Delivery;', 'gi')

试试这个:

 var str = "XP_New+Delivery;HP_New+Delivery;LA_New;"; var res = str.replace(/(_New\+Delivery;)/g, ","); console.log(res);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM