为了账号安全,请及时绑定邮箱和手机立即绑定

使用正则表达式检查模式时出现问题

使用正则表达式检查模式时出现问题

白猪掌柜的 2023-06-15 16:38:14
我在手动检查我的输入是否与我的模式匹配时遇到问题这是我用来检查它的功能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()));

让我知道这是否能让您得到想要的结果。祝你好运。


查看完整回答
反对 回复 2023-06-15
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号