2017-10-18 4 views
1

\b variable name \bの変数を検索して置き換えるにはどうすればよいですか? \b\bは変数では機能しません。 行内の別々の単語を正確にどのように見つけるか?個々の単語(変数内にある)を文字列で検索する(JavaScript)

new RegExp('\b'+find+'\b', "g")は動作しません

function work(form) { 
    var textIn = form.textIn.value; 
    var find = form.find.value; 
    var replace = form.replace.value; 
    var textOut = form.textOut; 
    textOut.value = textIn.replace(new RegExp(find, "g"), replace); 
} 
... "blablabla名前をmynameis" - 文字列、 "名前" - は "blablabla NAMEをmynameis" である必要があり、見つけると "NAME" に置き換え、与えられた - 「myNAMEisのblablablaのNAME 「あなたは別のバックスラッシュでバックスラッシュをエスケープする必要が

+0

Regexの場合、キャプチャされた結果と一緒にテキスト文字列の例を投稿できますか? – Ant

+0

完了、あなたは私を助けることができますか? –

答えて

1

、すなわち

new RegExp('\\b' + find + '\\b', 'g') 

\bは、バックスペース文字(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Escape_notationを参照)のエスケープシーケンスです。

また、find変数をエスケープする必要があります。残念ながら、JSには組み込み関数がありませんが、例えばEscape string for use in Javascript regexのソリューションを使用できます。

+1

ありがとう、それは動作するはずです - 新しいRegExp( '\\ b' + find + '\\ b'、 'g')? –

関連する問題