java - 正则表达式定义两个允许的字符/数字列表

标签 java javascript regex validation logic

我正在研究电话号码正则表达式,这是我到目前为止所拥有的:^[0-9~+ ]{8,20}$

它允许 0 到 9 之间的数字,并且还允许“+”和空格。范围必须在 8 到 20 之间。这样效果很好。

我想要的进一步是只有 8 到 20 位数字,其中“+”和空格与它们分开。

类似这样的:^[+]\d{8,20}$

建议?

最佳答案

怎么样:

^(?:[+ ]*\d){8,20}$

这将匹配前面有或没有 + 或空格的 8 到 20 位数字。

如果+只能出现在开头:

^[+]?(?:[ ]*\d){8,20}$

关于java - 正则表达式定义两个允许的字符/数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29565386/

相关文章:

没有 "server"的 Java 双向 SSL

java - Java 代码中的 commons-net FTPSClient 错误

javascript - 内联设置html元素的属性

javascript - 检查/验证 javascript 语法的简单方法

php - 允许 PHP date() 函数识别 dd-mm-yy 格式

Java三类层次结构

java - Spring Boot - EnableAutoConfiguration 与排除不起作用

javascript - Webpack、React.js - 浏览器控制台中要求未定义错误

python - 使用正则表达式解析 .srt 文件

regex - 使用正则表达式在 bash 中进行 Grep