正则表达式有助于javascript?

时间:2013-06-11 15:14:59

标签: javascript regex

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

1 个答案:

答案 0 :(得分: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>

new fiddle here


你告诉javascript要做的只是打印匹配你的正则表达式的结果数组中的第一个字符。你还没有考虑正则表达式中的“空格”字符

据我所知,这是你想要完成的事情 - 但如果这是不正确的,请澄清你想要达到的结果。

take a look at this fiddle

 <script>

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

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

 </script>

请注意我如何使用/[A-Z ]*/

包括匹配集中的空格字符以及星号,以表示匹配任意数量的这些字符。如果你试图只匹配第一个单词并停在空格处,只需删除它。

在任何一种情况下

here is a great article from the mozilla developer network explaining regex in all of its glory - pertaining specifically to its use with javascript

如果您决定想参加'手册'