doulan2827 2014-11-15 08:05
浏览 32
已采纳

正则表达式首先避免超过一个零

i want to regex that match the following case: it will be used for input field as pattern;

case:

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

i try with [0-9]+(\.[0-9][0-9]?)?

i will use in the input field as pattern. please help me.

<input type="text"  required="" pattern="[0-9]+(\.[0-9][0-9]?)?"  name="bstatus[bstatus_amount][]">

</div>
  • 写回答

2条回答 默认 最新

  • doubaomao9304 2014-11-15 08:41
    关注

    You can negate with a lookahead that asserts the absence of zero leading digits, and duplicate dots:

    ^(?!0\d|[^.]*\.[^.]*\.)\d+(\.\d\d?)?
    

    Here is a regex demo.

    Though considering your use case, what you need is simply:

    ^(?!0\d|[^.]*\.[^.]*\.)\d
    

    Here is a regex demo.

    echo preg_match('/^(?!0\d|[^.]*\.[^.]*\.)\d/', $str);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?