我想要符合以下情况的正则表达式:它将用作输入字段作为模式;
情况下:
1. 000 //not match
2. 100.000 //match
3. 0 //match
4. 0.0 //match
5. 0.01 //match
6. 00100 // not match
7. 001.1 //not match
8. 101 // match
9. 0.0.01 //not match
10. 02001 // not match
我尝试使用[0-9]+(\.[0-9][0-9]?)?
我将在输入字段中用作模式。请帮帮我。
<input type="text" required="" pattern="[0-9]+(\.[0-9][0-9]?)?" name="bstatus[bstatus_amount][]">
&#13;
答案 0 :(得分:2)
您可以通过前瞻来否定,该前瞻声明缺少零前导数字和重复点:
^(?!0\d|[^.]*\.[^.]*\.)\d+(\.\d\d?)?
这是regex demo。
虽然考虑您的用例,但您需要的只是:
^(?!0\d|[^.]*\.[^.]*\.)\d
这是regex demo。
echo preg_match('/^(?!0\d|[^.]*\.[^.]*\.)\d/', $str);
答案 1 :(得分:-2)
非常简单的解决方案是:
/^00/
preg_match
将返回true
无效字符串。