Javascript:如何从值中删除字符的出现?
在这里,我试图用空白替换出现的字符串和之后的4个字符 例如,我有以下字符串:Javascript:如何从值中删除字符的出现?,javascript,regex,Javascript,Regex,在这里,我试图用空白替换出现的字符串和之后的4个字符 例如,我有以下字符串: var a=ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG*qqqq~HGHGHG 我得到的值为bvbfg 现在,当我得到这个值时,我应该将bvbfg~jj替换为空值,字符串应该变为空 var a=ssss~ABC*ertert~PMU*trert~GFRG*qqqq~hghgh 类似地,如果我得到的值为qqq,我应该将qqq~HGHGHG替换为空白值 新值应该是 var a=ss
var a=ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG*qqqq~HGHGHG
我得到的值为bvbfg
现在,当我得到这个值时,我应该将bvbfg~jj
替换为空值,字符串应该变为空
var a=ssss~ABC*ertert~PMU*trert~GFRG*qqqq~hghgh
类似地,如果我得到的值为qqq
,我应该将qqq~HGHGHG
替换为空白值
新值应该是
var a=ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG
我尝试使用正则表达式:
下面的东西(例如)
但我看到的结果并不好。这有点棘手。任何指导。谢谢。我对regex不熟悉,这是我尝试过的,而且似乎很有效。
/bvbfg~(\w+)[*]?/g
演示:
但我建议你使用威克托·斯特里比奥的答案。
功能删除(str,tok){
var regex=new RegExp('\\b'+tok+'~[^*]*\\*?','i');//如果希望它区分大小写,请删除'i'参数
返回str.replace(正则表达式“”)
/*.replace(//^\*\*$/,“”)*////取消对此的注释以从开始和结束处删除*s
}
var a=“ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG*QQQ~HGHG”;
控制台日志(删除(a,“ertert”)代码>给你。。。简明扼要:)
document.getElementById('btn')。onclick=function(){
var value=document.getElementById('value')。value,
a='ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG*QQQ~HGHG',
regx=newregexp(“\\*?”+value+“~\\w*”,“g”);
console.log(a.replace(regx.);
}
提交
将所有内容与Stribiżew的正则表达式结合起来:
函数getRegexp(s){
返回新的RegExp(s+'~[^*]*\\*?','gi');
}
var str='ssss~ABC*bvbfg~JJJ*ertert~PMU*trert~GFRG*qqq~hghhg';
var s='bvbfg';
console.log(str.replace(getRegexp),“”);
s='qqqq';
console.log(str.replace(getRegexp),“”)
尝试我读了两遍你的问题,但我仍然不明白你想同时替换这两种情况吗?HGHGHG
如何变成hghgh
?我想做@Wiktor Stribiż给出的解决方案是什么?我应该将bvbfg传递给regex谁?你需要为此创建一个函数,检查ibrahim mahrir的回答谢谢mate+1:如果是abc、ertert、Weler、asdasd。如果我想除掉厄特。是否有任何正则表达式可以帮助我获取abc、WEER、asdasd。我将接受您的回答如果tok
以非单词字符开头,\b
将使其失败。我希望这里不是这样。@NitheshKumar您的意思是将其解析为对象(键值对)?
mystring.replace(/bvbfg/g , "newchar");