0

私は文字列を持っており、置換することでより良い方法を見つけようとしています(境界スペースが存在する場合)

trim_multispaceまた、複数回のパス (つまり、およびの呼び出しtrimed_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

以下は、これをほぼ 1 ステップで行います。まず、値と周囲の空白を 1 つのスペースに置き換えてから、結果をトリミングします。

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