这里我试图用空格替换字符串的出现和4个字符。
对于Eg我有以下字符串:
var a=ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG*qqqq~HGHGHG
我的值为bvbfg
现在,当我得到值时,我应该将bvbfg~JJJ
替换为空值,字符串应该变为
var a=ssss~ABC*ertert~PMU*trert~GFRG*qqqq~hghgh
同样,如果我将值设为qqqq
,我应将qqqq~HGHGHG
替换为空白值
,新值应为
var a=ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG
我尝试使用正则表达式:
如下所示(例如)
mystring.replace(/bvbfg/g , "newchar");
但我看到的结果并不好。这有点棘手。任何指导。感谢。
答案 0 :(得分:1)
function remove(str, tok) {
var regex = new RegExp('\\b' + tok + '~[^*]*\\*?', 'i'); // if you want it to be case sensetive, then remove the 'i' parameter
return str.replace(regex, '')
/*.replace(/^\*|\*$/, '')*/; // uncomment this to remove *s from the start and the end
}
var a = "ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG*qqqq~HGHGHG";
console.log(remove(a, "ertert"));

<强>解析:强>
function parse(str) {
return str.split('*')
.reduce(function(res, e) {
var parts = e.split('~');
res[parts[0]] = parts[1];
return res;
}, {});
}
var a = "ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG*qqqq~HGHGHG";
console.log(parse(a));
&#13;
答案 1 :(得分:0)
答案 2 :(得分:0)
在这里......简短而简单:)
document.getElementById('btn').onclick = function() {
var value = document.getElementById('value').value,
a = 'ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG*qqqq~HGHGHG',
regx = new RegExp('\\*?' + value + '~\\w*', 'g');
console.log(a.replace(regx, ''));
}
&#13;
<input id="value" type="text">
<button id="btn">Submit</button>
&#13;
答案 3 :(得分:0)
将所有内容与Stribiżew的正则表达式放在一起:
function getRegexp(s) {
return new RegExp( s + '~[^*]*\\*?', 'gi');
}
var str = 'ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG*qqqq~HGHGHG';
var s = 'bvbfg';
console.log(str.replace(getRegexp(s), ''));
s = 'qqqq';
console.log(str.replace(getRegexp(s), ''));