js中如何用整夜表达式判断1到1000以内的正整数

如题所述

你好,是正则表达式吧?

两个规则:

1、正整数:无符号(或+)开头:(^\+?)

2、1-1000:考虑是否包含上边界,如包含稍微麻烦一点点,如不包含简单点

具体代码如下:

var reg = /^\+?[1-9]\d{0,2}$/; // 不包含边界
var regFull = /^(\+?[1-9]\d{0,2}|\+?1000)$/; // 包含上边界

下面我们看几个测试用例

'1000'.match(regFull); // ["1000", "1000"]
'+1000'.match(regFull); // ["+1000", "+1000"]
'999'.match(regFull); // ["999", "999"]
'+999'.match(regFull); // ["+999", "+999"]
'1'.match(regFull); // ["1", "1"]
'0'.match(regFull); // null
'-999'.match(regFull); // null
'1001'.match(regFull); // null

好了,一切正常。但是我们忽略了另一种情况:

'001'.match(regFull); // null
'+001'.match(regFull); // null

但实际他们都是在这个区间内的正整数。我们可以这么做:

(+'+001' + '').match(regFull); // ["1", "1"]
(+'001' + '').match(regFull); // ["1", "1"]

好了,都解决了。

希望是你想要的答案,望采纳~~

温馨提示:答案为网友推荐,仅供参考