我目前正在使用正则表达式:/^\d+$/
进行仅数字字段验证,但如果可能,我需要使用以下规则对其进行扩展:
只有7个数字字符 OR 13个数字字符
示例:
答案 0 :(得分:0)
答案 1 :(得分:0)
你在哪里遇到解决这个问题的困扰?你说
只有7个数字字符或13个数字字符
通常,为了匹配一些内容,我们使用所谓的量词,例如*
为零或更多,?
为一个或多个,{{ 1}}用于 n ,或{n}
用于 n 或更多,{n,}
用于 n 和< EM>米
但是,没有一个量词表示&#34;完全 n 或 m 次&#34;。
因此,我们必须使用名为交替的regexp中的概念在您的问题中实现 OR ,并由管道表示(竖线,{{1} })。这在任何beginning regexp tutorial中都有描述。
所以在你的情况下,相关的正则表达式是:
{n,m}
正如其他答案已经提出的那样,这就变成了
|
答案 2 :(得分:-1)
这将有效
/^(\d{13}|\d{7})$/
答案 3 :(得分:-2)
您必须执行/^\d{7}(\d{6})?$/
6 = 13 - 7
我发现这个解决方案比/^(\d{7}|\d{13})$/
更灵活一点,因为它也可以在没有锚点^$
的情况下使用,以匹配前7个或前13个数字字符。当您尝试提取类似于您尝试验证的数据时,这可能很有用。
有关详细信息,请参阅this question。