Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式有问题_Javascript_Regex - Fatal编程技术网

JavaScript正则表达式有问题

JavaScript正则表达式有问题,javascript,regex,Javascript,Regex,我在让这个正则表达式工作时遇到了一个棘手的问题。到目前为止,我的模式是: var dollarPattern = /^\d{1,}|\s\d/gi; var matchedResults = new Array(); matchedResults = textValue.match(dollarPattern); 我希望实现的是使用示例字符串“2到2.99(63项)”,我想检查它是否以数字开头,或者是否包含后跟数字的空格(在本例中,这两个条件都为真)。然而,我在Firefox中不断得到一个“

我在让这个正则表达式工作时遇到了一个棘手的问题。到目前为止,我的模式是:

var dollarPattern = /^\d{1,}|\s\d/gi;

var matchedResults = new Array();
matchedResults = textValue.match(dollarPattern);
我希望实现的是使用示例字符串“2到2.99(63项)”,我想检查它是否以数字开头,或者是否包含后跟数字的空格(在本例中,这两个条件都为真)。然而,我在Firefox中不断得到一个“matchedResults为null”错误(尽管它的长度应该是2)


你知道我做错了什么吗?谢谢…

你所需要的就是逃跑

// Please note that this works, but @Lekensteyn pointed out that this uses string literals
// Also, this will give you the first match(if exists) only.
alert("2 to 3.99 (63 items)".match("^\\d\|\\s\\d"));


在铬合金、FF4和IE8中工作良好

当我在正则表达式周围加引号时,我得到null


但是,我得到的输出是“2,2”。

该代码周围还发生了什么?
{1,}
相当于
+
。这使它更简短,可读性更强。你明白吗?不需要使用字符串文字而不是正则表达式文字。@Lekensteyn Nope,不是100%。我发布了答案,因为它有效。没有“需要”,但这并不意味着它不能被使用,如果被使用它也不会起作用,对吗?在您的评论之后,我确实搜索了Javascript RE basics,并修改了答案。无论如何,感谢我第一次投反对票。:-)
// This one will give you all possible matches
alert("2 to 3.99 (63 items)".match(/^\d|\s\d/g));