簡體   English   中英

如何在正則表達式中驗證BIGINT

[英]how to validate BIGINT in regex

我正在嘗試驗證BIGINT mysql數據類型。 但我在re101上得到錯誤它說范圍太大,當它超過5位數時..那么如何在這種情況下驗證?

     ^\d{1,980989}$

您可以使用

\b(?:[0-9]{1,18}|[1-8][0-9]{18}|9(?:[01][0-9]{17}|2(?:[01][0-9]{16}|2(?:[0-2][0-9]{15}|3(?:[0-2][0-9]{14}|3(?:[0-6][0-9]{13}|7(?:[01][0-9]{12}|20(?:[0-2][0-9]{10}|3(?:[0-5][0-9]{9}|6(?:[0-7][0-9]{8}|8(?:[0-4][0-9]{7}|5(?:[0-3][0-9]{6}|4(?:[0-6][0-9]{5}|7(?:[0-6][0-9]{4}|7(?:[0-4][0-9]{3}|5(?:[0-7][0-9]{2}|80[0-7]))))))))))))))))\b

utilitymill.com提供 :)

添加一個可選的[+]? 在開頭,如果你想匹配+符號。

演示

WiktorStribiżew對答案的輕微變化允許-9223372036854775808,以及前面的pos / neg標志。

\b(?:[+-]?(?:[0-9]{1,18}|[1-8][0-9]{18}|9(?:[01][0-9]{17}|2(?:[01][0-9]{16}|2(?:[0-2][0-9]{15}|3(?:[0-2][0-9]{14}|3(?:[0-6][0-9]{13}|7(?:[01][0-9]{12}|20(?:[0-2][0-9]{10}|3(?:[0-5][0-9]{9}|6(?:[0-7][0-9]{8}|8(?:[0-4][0-9]{7}|5(?:[0-3][0-9]{6}|4(?:[0-6][0-9]{5}|7(?:[0-6][0-9]{4}|7(?:[0-4][0-9]{3}|5(?:[0-7][0-9]{2}|80[0-7]))))))))))))))))|-9223372036854775808)\b

邊界條件:

  • 9223372036854775807
  • 9223372036854775807
  • 9223372036854775808
  • 9223372036854775808
  • -9223372036854775808
  • -9223372036854775809

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM