我正在尝试使用 replace()
验证字段。
为此,我需要接受 1 到 999 之间的值。
我尝试了以下常规方法表达式,但它不起作用,因为它不支持 "10"
或 "100"
正则表达式:/[^1-9]/g
代码:
function fromUser(text) {
if (text) {
var transformedInput = text.replace(/[^1-9]/g, '');
if (transformedInput.length > 3) {
transformedInput = text.substring(0, 3);
}
if (transformedInput !== text) {
ngModelCtrl.$setViewValue(transformedInput);
ngModelCtrl.$render();
}
return transformedInput;
}
return undefined;
}
我需要承认 1 到 999 之间的值。
谢谢。
最佳答案
您可以使用类似 ^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$ 的表达式来实现此目的
:
let str = "1002113320400";
isValidNumber = str => !!str.match(/^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$/);
console.log(isValidNumber("0")); //false
console.log(isValidNumber("00")); //false
console.log(isValidNumber("000")); //false
console.log(isValidNumber("9990")); //false
console.log(isValidNumber("10")); //true
console.log(isValidNumber("100")); //true
console.log(isValidNumber("999")); //true
关于javascript - 接受 1 到 999 的正则表达式如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55580328/