2011-02-07 17 views
10

正規表現ではテキスト内の単語を置換する必要があり、単語の一部ではありません。置き換えJavascript:正規表現内の単語を置換するための正規表現

私のコード「ド」も、それは単語の一部だとき:適切な出力を得るため" degree deep "

何はRegexする必要があります:私は必要

str="de degree deep de"; 
output=str.replace(new RegExp('de','g'),''); 

output==" gree ep " 

出力?

答えて

17
str.replace(/\bde\b/g, ''); 

RegExp('\\bde\\b','g') // regex object constructor (takes a string as input) 

/\bde\b/g    // regex literal notation, does not require \ escaping 

その同じものです。

\bは、「単語境界」を示します。単語境界は、の単語の文字がの単語でない単語に続くか、またはその逆の位置として定義されます。単語文字はJavaScriptで[a-zA-Z0-9_]と定義されています。

スタート-の文字列終了の文字列位置は限り彼らはそれぞれ、続くまたは単語文字が先行しているように、同様に単語の境界ことができます。

という単語キャラクタの表記は、英語の領域外ではあまりうまく機能しません。

2

reg ex \bde\bを使用できます。

実際のサンプルhereが見つかります。

正規表現文字\bは単語区切り文字として機能します。あなたはさらにhereを見つけることができます。

2

あなたは\b間、検索文字を囲む必要があります。

str="de degree deep de"; 
output=str.replace(/\bde\b/g,'');