Javascript 正则表达式精确数且仅为正数

Javascript 正则表达式精确数且仅为正数,javascript,regex,Javascript,Regex,我在获得一个正则表达式时遇到了一个小问题,该表达式满足以下事实,即匹配列表上的精确数字,并且该数字为正数,一开始我正在处理以下问题: <!DOCTYPE html> <html> <body> <script type="text/javascript"> var patt1=/\b(100|101)/g; var str="-101"; document.write(str.match(patt1)); doc

我在获得一个正则表达式时遇到了一个小问题,该表达式满足以下事实,即匹配列表上的精确数字,并且该数字为正数,一开始我正在处理以下问题:

<!DOCTYPE html>
<html>
<body>

<script type="text/javascript">
    var patt1=/\b(100|101)/g;

    var str="-101";
    document.write(str.match(patt1));
    document.write("<br/>");
    var str="101";
    document.write(str.match(patt1));

</script>

</body>
</html>
但是对于这两种情况,结果都是
null
,然后

var patt1=/(^-)\b(100|101)/g; 
但是结果不是
null
,然后是
101
,而是相反的
-101 null


我想让101而不是-101知道如何做到这一点。

你可以使用这个
regex

var patt1 = /^(100|101)$/;
它仅将
100
101
作为有效输入

但对于这个简单的测试,我将使用:

if (str === "100" || str === "101")
    // Do something.

您可以使用这个
regex

var patt1 = /^(100|101)$/;
它仅将
100
101
作为有效输入

但对于这个简单的测试,我将使用:

if (str === "100" || str === "101")
    // Do something.

这将匹配字符串中的一个数字,该数字前面没有任何内容,或者前面除了
-
以外的字符:

var patt1 = /(^|[^-\d])(100|101)\b/;
var str1 = "Does this string contain 100 somewhere?"
var str2 = "Does this string contain -100 somewhere?"

console.log(str1.match(patt1)); // Finds a match
console.log(str2.match(patt1)); // Doesn't

这将匹配字符串中的一个数字,该数字前面没有任何内容,或者前面除了
-
以外的字符:

var patt1 = /(^|[^-\d])(100|101)\b/;
var str1 = "Does this string contain 100 somewhere?"
var str2 = "Does this string contain -100 somewhere?"

console.log(str1.match(patt1)); // Finds a match
console.log(str2.match(patt1)); // Doesn't

实际字符串是否也包含其他字符,或者整个字符串是数字?问题是
\b
也与
-
匹配。因此
abd 100
是无效输入,对吗?实际字符串是否也包含其他字符,或者整个字符串是数字?问题是
\b
也与
-
匹配。因此
abd 100
是无效输入,对吗?@Niko。真的。。。我复制了他的代码,没有注意到。谢谢。谢谢ppl这符合我的需要,我不能使用您建议的if-gdoron,因为此列表是动态生成的。@user1428872。没问题,别忘了接受答案,你可以从你得到的答案中选择一个,也可以自己写一个并接受。@Niko。真的。。。我复制了他的代码,没有注意到。谢谢。谢谢ppl这符合我的需要,我不能使用您建议的if-gdoron,因为此列表是动态生成的。@user1428872。没问题,别忘了接受答案,你可以从你得到的答案中选择一个,也可以自己写一个,然后接受。你不觉得这个
regex
仅仅匹配100或101就太过分了吗?@gdoron我猜(希望)这是一个SSCCE。你不认为这个
regex
仅仅匹配100或101就太过分了吗?@gdoron我猜(希望)这是一个SSCCE。