我想验证用户输入的值
a. Starts with 2
b. 10 digit in length
c. could be multiple numbers separated by new line
例如
2123123123 - Valid
2123123123
2987654321 - Valid
2123123123
newline - Invalid
我使用的表达式为"^[2]\d{9}(?:\r\n[2]\d{9})*$"
。只有当我输入一个10位数字但不能在换行符上使用多个数字
答案 0 :(得分:0)
如果您只想允许用一个新行分隔的数字,您可以使用以下方法:
^2\d{9}(\r\n2\d{9})?$
但是如果你想考虑任意数量的行,你必须切换到:
^2\d{9}(\r\n2\d{9})*$
我应该承认\r
可选地解析为有效的\r\n
或\n
。如果您还需要考虑数字周围是否有空格,您应该考虑:
^\s*2\d{9}(\s*\r?\n\s*2\d{9})*\s*$
锚点^
和$
是必要的,或者您可以接受以2
开头的十位数序列或以一行开头的序列结束的行。< / p>
有关最后一个正则表达式,请参阅此demo。
答案 1 :(得分:0)
下面修复了我的问题,
^ [2] \ d {9}(?:吗?\ r \ n [2] \ d {9})* $
感谢大家的帮助
答案 2 :(得分:-1)
这是我的解决方案:
"^2\d{9}(\r\n2\d{9})*$"