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。