0

我不确定为什么这段代码不起作用,在我找到代码的网站上,它说它应该打印大写 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 回答