我需要从不以零结尾的字符串中获取数字(nod除以10)
我试过
RegExp('[0-9]*[1-9][^0]', 'i').test("dasda dasdas 111110 dasdasda")
但仍然得到11111
更新:如果文字为“dasda dasdas 111114 dasdasda”,我只需要获得结果。
aasda 312 asdas - 是的,
asa 333 dasda - true,
dasd 10 sdas - false,
asda 11 asdas - 是的,
dasd 1110 sadasda - false
1000 asddasd - false 1001 adas -true
答案 0 :(得分:2)
答案 1 :(得分:1)
这也可以起作用\d*[^\D0](?!\d)
或只是\d*[1-9](?!\d)
答案 2 :(得分:1)
这个怎么样:
\d*[1-9](?!\d)\
d*
匹配任何数字(重复的数字) - 或者没有(对于单个数字的数字很重要!)
[1-9]
确保最后一位数字为非零
(?!\d)
负向前瞻以确保下一个字符不是数字
这会通过您的测试用例,但也
1)假设您可以匹配单个数字,例如:
1
但不是0
2)假设您要匹配由非空格字符包围的数字,例如asdf123ghi
如果不是(2),你可以放弃前瞻以获得更便宜的选择(在这种情况下使用Vitaliy的第二个解决方案)。
答案 3 :(得分:0)
有多种方法可以测试匹配,但以下方法应该有效:
/[\b[0-9]+[^0]{1}\b/ig.test(some_string);
这将测试字符串中是否有一个不以0结尾的数字。\ b是单词边界并将匹配约束为单词边界,空间用于所有意图和目的。 [0-9] +是具有至少一个匹配的任意数量的连续数字的字符类。然后[^ 0] {1}表示长度为1的任何非0字段。最后一部分是使其起作用的特殊约束。