javascript - 接受 1 到 999 的正则表达式如何实现?

标签 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-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/

相关文章:

javascript - 在 getRangeList 中传递参数时找不到范围

javascript - 在 ng-repeat 中设置变量并作为参数传递

javascript - 具有最小网络流量的进度条

javascript - 在 checkout.js 上禁用 Paypal 机器人后消息传递 - 如何关闭 Debug模式

javascript - Angular ui-router 多个 View 顺序重要吗?

javascript - 在播放其他音频时使音频静音

javascript - Kendo UI 网格 - 根据 bool 属性禁用自定义命令按钮

javascript - 找不到模块 : Can't resolve 'firebase' in react js

javascript - vue-router:可选固定+路径参数

javascript - 在 IE 和 Chrome 中工作的代码在 Firefox 中不起作用