Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:如何从值中删除字符的出现?_Javascript_Regex - Fatal编程技术网

Javascript:如何从值中删除字符的出现?

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

在这里,我试图用空白替换出现的字符串和之后的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=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");