如何接受从1到999的正则表达式?

时间:2019-04-08 19:16:02

标签: javascript

我正在尝试使用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 个答案:

答案 0 :(得分:3)

您可以使用^([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

相关问题