js校验输入框多个花括号里的每个花括号里只能输入数字

js校验输入框多个花括号里的每个花括号里只能输入数字
image.png
限制这里每个花括号只能输入数字

阅读 3.5k
6 个回答
!/{\D+}/.test(str);
新手上路,请多包涵

这个比较简单,用正则表达式 /{(\w+)}/g 匹配出所有{...}内内容,然后判断是不是数字就行了

!/\{[^\}]*[^\}\d]+[^\}]*\}/.test(str)

检验一下是不是存在花括号中有非数字的情况

/{.*?\D.*?}/g
!/{\d*[^\d}]+\d*}|{[^\d}]+[^}]*}/.test(str)
function test(str) {
    for (const [_, $1] of str.matchAll(/{([^{}]*)}/g)) {
        if (isNaN(Number($1)) || !$1) return false;
    }
    return true;
}
console.dir(test("{1}asdas{2}asdas{3}asdas{4}asdas{5}"));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题