【问题标题】:JavaScript regular expression for business name with some validation带有一些验证的企业名称的 JavaScript 正则表达式
【发布时间】:2015-06-09 07:59:34
【问题描述】:

我需要符合以下条件的企业名称的 JavaScript 正则表达式:

  1. 允许使用数字、空格和以下字符:

    ~ ` ? ! ^ * ¨ ; @ = $ % { } [ ] |  /. < > # “ - ‘
    
  2. 应至少为 2 个字符,其中一个必须是字母或数字字符

  3. 前面或后面没有空格

示例:Test1TaA1M's1'ss!1!

我尝试了以下(暂时我只使用了 3 个特殊字符进行测试):

^(?=(?:[^\A-Za-z0-9]*[\A-Za-z0-9]){2})[~,?,!]*\S+(?: \S+){0,}$

但它不会验证 s!1!

【问题讨论】:

  • 允许的字符:(~), (`), (?), (!), (^), (*), (¨), (;), (@), (=) ,($), (%), ({), (}), ([), (]), (|), (), (/)。 ()、(#)、(“)、(.)、(,)。 (-)。 (‘)
  • 你有什么尝试吗?请分享您的尝试。
  • 我尝试了以下操作(暂时我只使用了 3 个特殊字符进行测试):^(?=(?:[^\A-Za-z0-9]*[\A-Za -z0-9]){2})[~,?,!]*\S+(?: \S+){0,}$ 但它不验证 s!或 1!
  • 条件是一个字符必须是字母数字还是第一个字符必须是字母数字?例如,“!s”是一个有效的名称吗?
  • !它是有效的。因为条件至少是 2 个字符,其中一个必须是字母或数字字符。

标签: javascript regex


【解决方案1】:

您可以使用以下方式进行验证:

^(?!\s)(?!.*\s$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9 '~?!]{2,}$

并在[a-zA-Z0-9 '~?!] 中添加您希望允许的所有字符

DEMO

解释:

  • ^ 字符串开头
  • (?!\s)don't start with space 的前瞻断言
  • (?!.*\s$)don't end with space 的前瞻断言
  • (?=.*[a-zA-Z0-9])atleast one alpha or numeric character 的前瞻断言
  • [a-zA-Z0-9 '~?!]我们要匹配的字符(根据需要自定义)
  • {2,} 匹配先前定义的类中的最少 2 个和最多任意数量的字符
  • $ 字符串结尾

【讨论】:

    猜你喜欢
    • 2016-06-15
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多