web-dev-qa-db-ja.com

空の文字列または空白の正規表現

ユーザーがテキストボックスに空白を入力したかどうかを検出しようとしています:

_ var regex = "^\s+$" ; 
 if($("#siren").val().match(regex)) {
     echo($("#siren").val());
     error+=1;
    $("#siren").addClass("error");
    $(".div-error").append("- Champ Siren/Siret ne doit pas etre vide<br/>");
 }
_

if($("#siren").val().match(regex))は空白文字列に一致するはずですが、うまくいかないようです。何が間違っていますか?

ご協力ありがとうございます

19
dtjmsy

\呼び出しの.match(バックスラッシュ)は適切にエスケープされません。ただし、正規表現リテラルを使用する方が簡単です。どちらも動作します:

var regex = "^\\s+$";
var regex = /^\s+$/;

また、+には少なくとも1つのスペースが必要です。 *を使用することもできます。

30
Explosion Pills

JQueryを使用している場合、.trim()があります。

if ($("#siren").val().trim() == "") {
  // it's empty
}
22
yan

空白に加えて空の文字列を探している場合は、+ではなく*を使用する必要があります

var regex = /^\s*$/ ;
                ^
20
asantaballa

http://jsfiddle.net/DqGB8/1/

これは私の解決策です

var error=0;
var test = [" ", "   "];
 if(test[0].match(/^\s*$/g)) {
     $("#output").html("MATCH!");
     error+=1;
 } else {
     $("#output").html("no_match");
 }
2
JustGage

文字列の最初と最後の空白だけを気にする場合(ただし、中央ではない場合)、別のオプションはString.trim()を使用することです。

"    your string contents  ".trim();

// => "your string contents"
0
marcelocra

同様の問題があり、文字列内の空白を探していました、解決策:

  • 1つのスペースを検索するには:

    var regex = /^.+\s.+$/ ;
    

    例:「ユーザーlast_name」

  • 複数のスペースを検索するには:

    var regex = /^.+\s.+$/g ;
    

    例:「ユーザーの姓」

0
Jose Paez

スクリプトと空白について説明する際の重要な注意点の1つは、ブラウザーがスペース、空白、タブ、および改行をスペースに解析するということは、実際には空白であることを意味します。空白自体は\xA0(文字160)。つまり多くの場合、PHPファイルをMac上で作成し、魔法のようにスペースにヒットしないだけでなく、スペースのように見えるが1つではないcharがあります。突然表示されなくなり、すべて削除\xA0(Char 160)はスクリプトから。 (検索時に、TextWrangler/BBEditで検索ダイアログのチェックボックス「Grep」を押すと、Coda、Eclipseなどでも同様になります)。理解するには時間がかかります。トピックと100%一致しない場合でも、その問題を正確に検索すると、Googleでの最初の結果になります。それが誰かを助けることを願っています。

0
Chris S.