我有两个正则表达式来验证输入的值。
允许任意长度的Alpha-Numeric值:
@"^\s*(?<ALPHA>[A-Z0-9]+)\s*"
另一个只允许数值:
@"^\s*(?<NUM>[0-9]{10})"
如何获得长度为11的数字字符串,而不是NUM
正则表达式。
答案 0 :(得分:15)
我认为你想说的是你不想允许超过10位数。因此,只需在末尾添加$
即可指定正则表达式的结束。
示例:@"^\s*(?[0-9]{10})$"
这是我的原始答案,但我想我读得太准确了。
string myRegexString = `@"(?!(^\d{11}$)` ... your regex here ... )";
读取“虽然未提前,但是开始,11位数,结束”
答案 1 :(得分:4)
如果是单行,您可以指定您的匹配必须发生在行尾,例如.net ...
^\s*([0-9]{10})\z
这将接受1234567890,但拒绝12345678901。
答案 2 :(得分:2)
您的意思是想要匹配最多 10位数吗?试试这个:
@"^\s*[0-9]{1,10}\s*$"
答案 3 :(得分:0)
在长度为10的字符串后匹配非数字的内容。我的正则表达式并不是那么好,但是我认为你已经设置了它来捕获一个长度为10的数字字符串,但由于你之后没有匹配任何东西,长度为11的字符串也会匹配。尝试超出数字末尾的匹配,你会很好。
答案 4 :(得分:0)
你可以尝试交替吗?
^\s*(?\d{1,10}|\d{12,})
答案 5 :(得分:0)
这应该只匹配10位数字,并允许在数字前后任意数量的空格。
非捕获版本:(仅匹配,不存储匹配的数字)
^\s*(?:\d{10})\s*$
捕获版本:(匹配的数字在子组1中可用,为$ 1或\ 1)
^\s*(\d{10})\s*$
答案 6 :(得分:0)
如果您只想匹配10位数字的数字,只需使用$添加尾随锚点,如下所示:
^\s*(?:[0-9]{10})\s*$
这将匹配任何正好10位数的数字(两边都有可选空格)。
答案 7 :(得分:0)
var pattern =/\b[0-9]{10}$\b/;
// the b modifier is used for boundary and $ is used for exact length
&#13;