繁体   English   中英

正则表达式至少包含一个字符。 成对的双引号。 不应包含@和?

[英]Regex containing at least a character. Double quotes in pair. Should not contain @ and?

我需要一个自定义正则表达式来验证HTML中的输入名称字段。 该模式应包含:

  1. 至少一个字母
  2. 不应包含“ @”和“?”
  3. 双引号必须成对使用
  4. 只能在双引号之间使用空格
  5. 最小长度为1。

无效的输入字符串:

  1. AAAAA @
  2. 111111#
  3. 111 @
  4. AAAAA?
  5. 啊啊啊啊
  6. AAAA”
  7. @#1234

有效输入字符串:

  1. aaaa“ aaa aaaa”
  2. AAAAA
  3. A11

我已经为第一和第二条件编写了正则表达式:

^((?=.*[a-z])|(?=.*[A-Z]))[^?@]+$

我无法为第三和第四条件制作正则表达式

你可以试试看。 (?=^.*[a-zA-Z].*$)(?=^[^@?]*$)(?=^[^" ]*("[^"]*")*[^" ]*$)^.*$

这是一个演示。

(?=^[^" ]*("[^"]*")*[^" ]*$)此正则表达式匹配“必须在成对中使用双引号AND空格只能在双引号之间使用”

对于列出的需求(由于包含as@ ,因此不匹配as@ @ ),您可以使用:

^(?=[^a-zA-Z\r\n]*[a-zA-Z])(?:[^?@"\s]|"[^@?"\r\n]*")+$

说明

  • ^字符串开头
  • (?=[^a-zA-Z\\r\\n]*[a-zA-Z])断言至少1次az或AZ
  • (?:非捕获组
    • [^?@"\\s]匹配除?@"或空格字符以外的任何字符
    • | 要么
    • "[^@?"\\r\\n]*"匹配一个开头" ,除列出的和结尾的"以外的任何字符0倍以上
  • )+分组并重复1+次
  • $字符串结尾

正则表达式演示

我不知道为什么as@在您的5个角色中必须为真。 但这与所有有效输入匹配,除了as@

^\w+(?:"[\w ]+")*$

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM