在 JavaScript 中创建带有量词的正则表达式,可以在正则表达式中直接指定。
例如,如果想匹配至少 minnumb 位,至多 maxnumb 位的数字,可以使用 {minnumb,maxnumb} 来指定。
鱼油的正则表达式应该是这样创建的,直接在表达式里加上量词:
- const rule = new RegExp( [0-9]{${minnumb},${maxnumb}} );
复制代码
minnumb 是最小位数, maxnumb 是最大位数, [0-9] 表示匹配从0到9的任意数字。
量词 {minnumb,maxnumb} 会应用于之前的那个字符集合。
同时,鱼油在使用 RegExp 对象的时候,应该使用 test 方法来检测字符串是否符合规则,而不是 text 。
修改后的代码片段:
- function numbcheck(idname = "", minnumb = 0, maxnumb = 6) {
- const idnames = document.querySelector( #${idname} );
- if (idnames) {
- const rule = new RegExp( [0-9]{${minnumb},${maxnumb}} );
- idnames.addEventListener("change", function () {
- if (rule.test(idnames.value) || rule.test(idnames.innerHTML)) {
- return true;
- } else {
- return false;
- }
- });
- } else {
- // 实现checkid函数以输出最近的两个id
- checkid(idname);
- return null;
- }
- }
复制代码
确保 checkid 函数已经在您的代码中定义,以便当找不到指定的 id 时能够正常运行