提问者:小点点

“任何正整数,不包括0”的正则表达式是什么[重复]


已经有另一个帖子了,但我不能对此发表评论。抱歉。

我用了

var pattern = new RegExp('^[1-9]\d*$'); 
var result = fieldValue.search(pattern);

但是如果我写12,我会得到一个“-1”

它只允许我从1到9编号,没有更多。

有什么不对劲吗?


共2个答案

匿名用户

假设语言是JavaScript,您需要对字符串中的反斜杠字符进行转义,使其具有反斜杠的值:

'\d'是一个值为d
'\\d'的字符串是一个值为\d的字符串

var pattern = new RegExp('^[1-9]\\d*$');

JavaScript还具有正则表达式文字,避免了额外转义字符的需要:

var pattern = /^[1-9]\d*$/;

匿名用户

如果你想扩展它以允许带前导零的正整数,你可以这样做:

var pattern = /^\d*[1-9]+\d*$/

这将允许001作为有效输入(它是),而不允许000(它不是非零)。