2

特定の文字列を置き換えることは可能であるが、javascriptに同じ値を含む他の文字列を置き換えることはできないのではないかと思っていました。たとえば、テキストがあり、スタンドアロンのみを置き換え、ABのAはA AB置き換えたくないとします。A(注:この場合、これを手動で実行できることはわかっていますが、テキストの大きなブロック全体でこのようなシナリオを使用する予定です)これを実行するためのアルゴリズムまたは組み込みのjsコマンドはありますか?

4

4 に答える 4

7

単語の境界を持つ正規表現を使用します。

var str = 'A AB';
str = str.replace(/\bA\b/g, '');
于 2012-07-27T05:24:47.240 に答える
0

これは、JavaScriptの正規表現を使用して実現できます。

string = string.replace(/A/, "AB")

初めて発生する文字を置き換えます。

string = string.replace(/A/g, "AB")

「A」のすべての出現箇所を「AB」に置き換えます

于 2012-07-27T05:23:20.517 に答える
0

スタンドアロンの文字「A」だけを置き換えたい場合は、次のようなものが必要になる場合があります。

var re = /(^|\s)a(\s|$)/ig;

次に、次のことができます。

var s = 'A ab a ba a-b b-a a:v b a';
alert(s.replace(re, 'Z')); // ZabZba a-b b-a a:v bZ

これにより、文字の周囲の空白も削除されることに注意してください。

編集

空白を保持するには:

alert( s.replace(re, '$1Z$2') ); // Z ab Z ba a-b b-a a:v b Z
于 2012-07-27T05:45:53.817 に答える
0

他の回答に加えて、次のように書くこともできます:string = string.replace(/ a(?= \ s)/、 ""); (?=は、次の文字がスペース/タブなどの場合にのみ「a」を置き換えることを意味します。他の条件が必要な場合は、\ sの代わりに別の正規表現を書き込むこともできます(条件ではなく、「a」のみが一致します) (?= ...)の正規表現

コメント(Asaphの回答)の他の質問については、次のように書くことができます。

str = str.replace(RegExp( "\\ b" + x + "\\ b"、'g')、'');

于 2012-07-27T13:42:03.457 に答える