2013-04-16 4 views
7

私はそれがエスケープ文字で何かをしなければならないと思っています - かなり簡単ですが、このjavascriptコードがfalseを返す動作していない理由を理解できません。誰かが、空白が存在する場合にtrueを返すJSブロックを書くのを助けてくれますか?空白が存在するかどうかを確認する正規表現ですか?

var inValid = /\s/; 

これは使用しています:

var inValid = new RegExp("[\\s]"); 

はまたあなただけ使用することができます以下

var inValid = new RegExp("[\s]"); 
var value = "test space"; 
var k = inValid.test(value); 
alert(k); 

答えて

15

「S」用と「\」自身のための1つをバックスラッシュ(文字列形式を使用している場合)と組み込み正規表現構文を使用するときにバックスラッシュをエスケープする必要がないため、組み込み正規表現構文が簡単です。

var inValid = /\s/; 
var value = "test space"; 
var k = inValid.test(value); 
alert(k); 
3

は、あなたが文字列リテラルからあなたRegExpオブジェクトを作成している場合は、バックスラッシュをエスケープする必要があります正規表現のリテラルなので、バックスラッシュをエスケープする必要はありません。ここでは文字クラスは必要ありませんので、角括弧も削除しました。

3

あなたは二重のエスケープ文字が必要です。あなたは括弧を必要としない、あなたはエスケープする必要があるだろう

var inValid = new RegExp("[\\s]"); 
3

あなたがそこに何かを一致させたい場合は、ない空白:

alert(/^\S+$/.test(value)); 
関連する問題