正则表达式一个点或一个下划线验证器

标签 regex validation zend-validate

这是我的正则表达式

^(([a-z0-9]+)\.([a-z0-9]+)){4,20}$|^(([a-z0-9]+)\_([a-z0-9]+)){4,20}$

它将是一个带有单个点或单个下划线或没有 uderline 和点的单词。我还希望这个表达式介于 4 到 20 个字符之间(它将是 db 中的用户名)

这个正则表达式
^(([a-z0-9]+)\.([a-z0-9]+))$

和这个
^(([a-z0-9]+)\_([a-z0-9]+))$

工作成功,但我不知道如何限制字符串长度

:( 请帮忙

我打算将它与 Zend 框架正则表达式验证器一起使用...

最佳答案

^(?=[^\._]+[\._]?[^\._]+$)[\w\.]{4,20}$

解释:
^            - Start of string
(?=          - Followed by (not part of match)
  [^\._]+    - Anything but . and _
  [\._]?     - Optional . or _
  $          - End of string
)
[\w\.]{4,20} - 4-20 letters, digits, _ and .
$            - End of string
(?=[^\._]+[\._]?[^\._]+$)确保字符串包含不超过 1 ._ .其余的匹配字符串。

关于正则表达式一个点或一个下划线验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10643546/

相关文章:

正则表达式排除子字符串

javascript - 如何在一行中编写字段警报?

validation - Ember 验证触发太晚了

java - 禁止 XSD 中的空元素

javascript - 使用 jQuery 获取表单并将其发送到 javascript 函数

zend-framework - 元素标签为错误消息中的变量以进行验证

php - 如何在 Zend Framework 表单中创建日期时间验证器?

python - 如何找到交替重复的数字对?

从第二个 "\n"和其余部分中删除字符串中的行返回(不要删除第一个)

zend-framework - Zend 表单验证器文件上传无效