2

私は以下のような文字列を持っています

var str = "  Hello";

文字列の最初の文字を次のように取得できます

var the_char=str.charAt(0);
alert(the_char)
if(the_char === " "){
    alert("first char of the query is space");
    return;
}

文字列の最初の文字がスペースの場合にアラートをポップアップ表示したいのですが、どうすればよいですか?

ありがとう

4

7 に答える 7

9

空白にはいくつかの種類があります。

正規表現を使用すると、複数のテストを実行できます...

alert(/^\s/.test(mystring));

この^文字は、正規表現を文字列の先頭に固定します。

\s、スペース、タブ、改行、改行などをテストします。


MDN から:

\s スペース、タブ、フォーム フィード、ライン フィードを含む単一の空白文字に一致します。に相当し[ \f\n\r\t\v​\u00A0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​\u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u2028\u2029​\u202f\u205f​\u3000]ます。

于 2012-06-01T04:13:36.177 に答える
2

JavaScript の String.trim() は空白をうまく取り除くので、それを利用して startsWithSpace() 関数を作成しました。

var startsWithSpace = function(string) {
  return string.indexOf(string.trim()) != 0;
};

この実装では、改行は空白としてカウントされます。

于 2016-08-03T18:26:19.710 に答える
0

それはポップアップします:

JSFiddle

おそらく、例外がスローされ、次のコードのようにアラート間のどこかにキャッチされていない可能性がx.xありxますundefined

JSFiddle

ここに投稿したコードではなく、そのエラーを追跡して修正する必要があります。

于 2012-06-01T04:14:10.660 に答える
0
function haswsatbeginning(str){var re=new RegExp('^[ \\s\u00A0]+','g');return((str+'').replace(re,'')!==str);}
var str = "  Hello";
alert(haswsatbeginning(str)); // alerts true

str = ('{^-^}');
alert(haswsatbeginning(str)); // alerts false
于 2012-06-01T04:17:41.853 に答える
-1

最初のアラートの後にセミコロンがありません。Chrome または Firefox を使用している場合は、質問する前に必ずコンソールでエラーを確認してください。

于 2012-06-01T04:15:34.920 に答える
-2

ifループ内では何も返さない..構文エラーが発生するため、ポップアップが表示されないだけです..

returnステートメントを削除します

var str = "  Hello";

var the_char=str.charAt(0);
         alert(the_char);
         if(the_char === " "){
              alert("first char of the query is space");
             }
于 2012-06-01T04:13:41.817 に答える