如何在javascript中删除两个单词之间的字符串

时间:2016-07-19 05:44:38

标签: javascript string

如何在javascript中删除两个单词之间的字符串。

var myString="?specs=f_demo%3a8+GB!!4!!||f_test%3a2+GB!!2!!||f_test%3a4+GB!!3!!||f_demo%3a8+GB!!4!!||f_demo%3a16+GB!!5!!||||Category:Notebooks"

我想删除所有单词以" f_test"开头并以" ||"。

结束

输出字符串如:

?specs=f_demo%3a8+GB!!4!!||f_demo%3a8+GB!!4!!||f_demo%3a16+GB!!5!!||||Category:Notebooks"

谢谢!

1 个答案:

答案 0 :(得分:1)

使用 String#replace 方法,使用正则表达式 /f_test[^|]+\|\|/g (或 /f_test.+?\|\|/g

var myString = "?specs=f_demo%3a8+GB!!4!!||f_test%3a2+GB!!2!!||f_test%3a4+GB!!3!!||f_demo%3a8+GB!!4!!||f_demo%3a16+GB!!5!!||||Category:Notebooks";

console.log(
  myString.replace(/f_test[^|]+\|\|/g, '')
)

更新:如果从字符串变量加载test,则使用 RegExp 构造函数生成正则表达式。

var k = "test",
  myString = "?specs=f_demo%3a8+GB!!4!!||f_test%3a2+GB!!2!!||f_test%3a4+GB!!3!!||f_demo%3a8+GB!!4!!||f_demo%3a16+GB!!5!!||||Category:Notebooks";

console.log(
  myString.replace(RegExp('f_' + k + '[^|]+\\|\\|', 'g'), '')
)

参考:Converting user input string to regular expression