我检查提交以验证某些字段,我只需要检查数字和破折号:
var numPattern = /^[0-9\-]+$/;
//UI field null check
if (ssn != (numPattern.test(ssn))) {
displayError(Messages.ERR_TOPLEVEL);
}
if (accntNoCL != (numPattern.test(accntNoCL))) {
displayError(Messages.ERR_TOPLEVEL);
}
由于某种原因,这不起作用。任何想法为什么会这样?
答案 0 :(得分:4)
regex.test()
函数或您的numPattern.test()
函数会返回布尔值true
/ false
结果。
在您的代码if (ssn != numPattern.test(ssn))
中,您正在检查结果是否等于您正在测试的值。
尝试将其更改为以下内容:
if (!numPattern.test(ssn)) {
答案 1 :(得分:2)
test
是一个谓词,它返回一个布尔值:
var numPattern = /^[0-9\-]+$/;
numPattern.test("hello, world!"); // false
numPattern.test("123abc"); // false
numPattern.test("123"); // true
numPattern.test("12-3"); // true
答案 2 :(得分:1)