0

我有一个字符串,并试图通过替换来找出更好的方法(边界空间以及它们是否存在)

同时还替换值而不进行多次传递(即调用trim_multispacetrimed_result)。

var replaceVal = "c";
var strVals = "a b c d e f g h";

var replacedVal = strVals.replace(new RegExp("\\b"+replaceVal+"\\b",""),"");

alert(replacedVal)

var trim_multispace = replacedVal.replace(/ +(?= )/g,'');
var trimed_result = trim_multispace.replace(/^\s+|\s+$/g, '');

alert(trimed_result)
4

2 回答 2

2

我不确定我是否正确地理解了你,但这个正则表达式按照你指定的方式工作

strVals.replace(new RegExp(replaceVal, 'g'), '')
       .replace(/ +/g, ' ').replace(/^\s+|\s+$/g, '');
于 2012-04-06T19:49:28.597 回答
1

以下几乎是一步完成的,首先用一个空格替换值和任何周围的空格,然后修剪结果:

var replacedVal = strVals.replace(new RegExp("\\s*"+replaceVal+"\\s*", ""), " ").trim();
于 2012-04-06T19:50:16.090 回答