我正在验证各种输入数据参数。
我正在试图找出.match和RegExp。
这似乎验证字符串是否仅包含0-9个字符:
!str.match(/^[0-9]+$/)
如果字符串包含其他内容,则会失败。
是否正确理解,或者只是检查字符串是否包含任何0-9个字符?
所以我能做到:
if (!string.match(/^[0-9]+$/))
console.log('fails as the string contains other characters than 0-9');
答案 0 :(得分:1)
就个人而言,我会使用这样的东西:
string='188867899';
var regex = /\D/; //any non-digit character
if (regex.test(string)) //if string contains any non-digit char
console.log('String 1 contains non-digit chars');
string2='1888y67899';
var regex = /\D/; //any non-digit character
if (regex.test(string2)) //if string contains any non-digit char
console.log('String 2 contains non-digit chars');

但是,这个选择的问题(品味,无论如何),或多或少......
答案 1 :(得分:0)
match()方法在将字符串与正则表达式匹配时检索匹配。
您的正则表达式为/^[0-9]+$/
,表示
^
:在字符串
[0-9]
:0(ASCII 48)和9(ASCII 57)范围内的单个字符
+
:量词 - 在一次和无限次之间匹配,尽可能多次
$
:在字符串
以下代码段使用test()方法测试字符串中的匹配项。
var regex = /^[0-9]+$/;
console.log(regex.test("0123")); //true only 0-9
console.log(regex.test("1")); //true only 0-9
console.log(regex.test("")); //false Not at least 1 character 0-9
console.log(regex.test("a0123")); //false contains a letter
console.log(regex.test("abc")); //false contains multiple letters