在 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 时能够正常运行 |