Javascript 替换字符串值和边界空间(如果存在)
我有一根绳子,正试图找到更好的方法 替换(边界空间(如果存在) 同时还替换了不带 进行多模块传递(即调用,Javascript 替换字符串值和边界空间(如果存在),javascript,regex,replace,Javascript,Regex,Replace,我有一根绳子,正试图找到更好的方法 替换(边界空间(如果存在) 同时还替换了不带 进行多模块传递(即调用,trim\u multispace和trim\u result) 我不确定我是否理解正确,但是这个正则表达式按照您指定的方式工作 strVals.replace(new RegExp(replaceVal, 'g'), '') .replace(/ +/g, ' ').replace(/^\s+|\s+$/g, ''); 我不确定我是否理解正确,但是这个正则表达式按照您指定的
trim\u multispace
和trim\u result
)
我不确定我是否理解正确,但是这个正则表达式按照您指定的方式工作
strVals.replace(new RegExp(replaceVal, 'g'), '')
.replace(/ +/g, ' ').replace(/^\s+|\s+$/g, '');
我不确定我是否理解正确,但是这个正则表达式按照您指定的方式工作
strVals.replace(new RegExp(replaceVal, 'g'), '')
.replace(/ +/g, ' ').replace(/^\s+|\s+$/g, '');
以下操作几乎只需一步,首先用一个空格替换值和任何周围的空白,然后修剪结果:
var replacedVal = strVals.replace(new RegExp("\\s*"+replaceVal+"\\s*", ""), " ").trim();
以下操作几乎只需一步,首先用一个空格替换值和任何周围的空白,然后修剪结果:
var replacedVal = strVals.replace(new RegExp("\\s*"+replaceVal+"\\s*", ""), " ").trim();
这不会将字符串中任意位置的多个空格减少为单个空格。另一件事是
trim
函数仅在Javascript 1.8.1中可用。根据问题,这不是一个要求。OP只提到要替换的值周围的边界空间,尽管原始代码也会产生删除所有多个空间的副作用。这不会将字符串中任意位置的多个空间减少为单个空间。另一件事是trim
函数仅在Javascript 1.8.1中可用。根据问题,这不是一个要求。OP只提到要替换的值周围的边界空间,尽管原始代码也会有删除所有多个空间的副作用。谢谢!Narendra,你为什么要编辑你的答案?原始答案运行得很好?@david I在RegExp
构造函数中添加了一个g
标志,对replaceVal
进行全局替换。也就是说,如果在字符串中的任意位置多次找到replaceVal
,则所有出现的内容都将被替换。我认为这会适合您的情况。只是想让您知道,新附加的全局标志会导致您的解决方案在我的案例中失败,因为它将替换replaceVal
的任何出现,例如a b c d e f g hc
c
将从hc
@david中删除。如果单独出现,是否需要替换多次出现的“c”?例如,您是否希望将a b c d c e c
缩减为a b d e
。如果是这样,请让我知道,我将根据向上述正则表达式添加边界条件来修改正则表达式。它看起来像新的RegExp('\\b'+replaceVal+'\\b',g')。如果只希望替换第一次出现的replaceVal
,则使用此新RegExp('\\b'+replaceVal+'\\b','')
。让我知道在任何情况下,我会相应地更新答案。谢谢!Narendra,你为什么要编辑你的答案?原始答案运行得很好?@david I在RegExp
构造函数中添加了一个g
标志,对replaceVal
进行全局替换。也就是说,如果在字符串中的任意位置多次找到replaceVal
,则所有出现的内容都将被替换。我认为这会适合您的情况。只是想让您知道,新附加的全局标志会导致您的解决方案在我的案例中失败,因为它将替换replaceVal
的任何出现,例如a b c d e f g hc
c
将从hc
@david中删除。如果单独出现,是否需要替换多次出现的“c”?例如,您是否希望将a b c d c e c
缩减为a b d e
。如果是这样,请让我知道,我将根据向上述正则表达式添加边界条件来修改正则表达式。它看起来像新的RegExp('\\b'+replaceVal+'\\b',g')。如果只希望替换第一次出现的replaceVal
,则使用此新RegExp('\\b'+replaceVal+'\\b','')
。让我知道在任何情况下,我会相应地更新答案。