我在手动检查我的输入是否与我的模式匹配时遇到问题这是我用来检查它的功能if (!$element.attr("pattern")) return true; let pattern = $element.attr("pattern"); let exp; if (pattern.charAt(0) === "^") exp = new RegExp(pattern); else exp = new RegExp('^' + pattern + '$'); if (exp.test($element.val())) return true; else { return false; }我已经检查过没有我用来设置 var“exp”的 ifelse,但结果是一样的。这是我要检查的输入<input class="k-textbox cyclique-input-popin" type="text" pattern="^[0-9]+([,][0-9])?$"/>它的值为 0.25,我希望它能够具有这样的值:1,251,20,220...可以有一个“,”或没有,但不能有像 1,20 这样的尾随零
1 回答

MYYA
TA贡献1868条经验 获得超4个赞
(1) 您当前的模式允许尾随零,并且 (2) 该模式只允许逗号右侧的一位数字。你想要这样的东西:
<input ... pattern="^[0-9]+(,[0-9]*[^0])?$">
最后,你的代码可以简化一些:
let pattern = $element.attr('pattern');
if (!pattern) {
return true;
}
let exp;
if (pattern[0] === '^') {
exp = new RegExp(pattern);
} else {
exp = new RegExp('^' + pattern + '$');
}
return exp.test($element.val()));
让我知道这是否能让您得到想要的结果。祝你好运。
添加回答
举报
0/150
提交
取消