我正在寻找一个只包含0-9数字的字符串,不包含其他字符。
这会以“false”值向我发出警报:
var regex = new RegExp('^[\d]{0,9}$');
alert(regex.test('123456789'));
以下这些语句会返回true,我理解其中的原因(^和$表示整个字符串需要匹配,而不仅是字符串中的一部分):
var regex = new RegExp('[\d]{0,9}');
alert(regex.test('123456789'));
-
var regex = new RegExp('[\d]{0,9}');
alert(regex.test('12345678934341243124'));
并且这将返回true:
var regex = new RegExp('^[\d]{0,9}');
alert(regex.test('123456789'));
那么为什么在结尾添加"$"会导致失败呢?
我需要做什么来解决这个问题呢?
\d
。 - Simbanew Regex()
;只需使用内联正则表达式——var regex = /^\d{0,9}$/;
。更简单。只有在需要动态定义表达式时才使用new Regex()
。 - Simba/
包围,而不是引号。 - Barmar/[\d]{0,9}/
,这样 OP 就不需要转义反斜杠了。 - sp00md
0 次。 - James Thorpe