変数を使用して、単語の境界などの特殊文字を含む正規表現を作成するにはどうすればよいですか?

エヴァ

Javascriptで、変数に含まれている単語に一致する正規表現を作成しようとしていますが、その単語が単語全体である場合に限ります。次のように、単語の境界を使用してこれを実行したかったのです。

var data = 'In this example of data, word has to be replaced by suggestion, but newword must not be replaced';
var item = {word: 'exampleWord', suggestion: 'suggestion'}
var word = "\b"+item.word+"\b";
var suggestion = item.suggestion;
var re = new RegExp(word, "gi");
data = data.replace(re, suggestion);

ただし、この方法で正規表現を作成することは、明らかに機能しません。変数と単語の境界を含むこの正規表現を作成する方法を誰かが提案できますか?

WiktorStribiżew

ダブルエスケープを使用する必要があります\\b

var word = "\\b"+item.word+"\\b";

item.word特殊文字が含まれている可能性がある場合は、RegExp.escape関数を使用してください

var word = "PRICE: $56.23"
RegExp.escape= function(s) {
    return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
};
alert("\\b"+RegExp.escape(word)+"\\b");

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ