0

このコードが機能しない理由がわかりません。コードを見つけたWebサイトで、大文字のaからzまでの任意の文字を印刷する必要があると書かれています。0〜9の数字を印刷するために、数字で同じことを試みましたが、機能しません。

<!DOCTYPE html>
<html>
  <body>
    <script>
      var string = "THIS IS AN EXAMPLE";
      var str = /[A-Z]/;

      document.write(string.match(str));
    </script>
  </body>
</html>
4

1 に答える 1

3

編集:

明確な質問の後に更新

 <script>

 var string = "1 2 3 4 8 9 11 15 18 293";
 var str = /[0-9]*/g;

 var arr = string.match(str);

 var length = arr.length;

 for (var i = 0; i < length; i++) {
     if ( parseInt(arr[i]) <= 9 && parseInt(arr[i]) >= 1){
         document.write(arr[i] + " ");
     }
 }

 </script>

ここに新しいフィドル


JavaScript に指示しているのは、正規表現に一致する結果の配列の最初の文字のみを出力することです。正規表現の「スペース」文字も考慮していません

私の理解の範囲では、これがあなたが達成しようとしていることです。しかし、これが間違っている場合は、達成しようとしている結果を明確にしてください。

このフィドルを見てください

 <script>

 var string = "THIS IS AN EXAMPLE";
 var str = /[A-Z ]*/;

 document.write(string.match(str));

 </script>

アイブがどのように使用したかに注意してください/[A-Z ]*/

一致するセットにスペース文字を含め、これらの文字の任意の数の一致を示すアスタリスクを含めます。最初の単語だけを一致させてスペースで止めようとしている場合は、単にそれを削除してください。

どちらの場合にも

これは、mozilla 開発者ネットワークからの素晴らしい記事で、その栄光のすべてで正規表現を説明しています - 特に javascript での使用に関連しています

「マニュアル」を見てみたいと思った場合に備えて

于 2013-06-11T15:18:41.620 に答える