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);
ただし、この方法で正規表現を作成することは、明らかに機能しません。変数と単語の境界を含むこの正規表現を作成する方法を誰かが提案できますか?
ダブルエスケープを使用する必要があります\\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]
コメントを追加