【问题标题】:javascript: Use RegEx to allow letters, numbers, and spaces (with at least one letter and number)javascript: 使用 RegEx 允许字母、数字和空格(至少有一个字母和数字)
【发布时间】:2012-03-19 05:15:50
【问题描述】:

我想构建一个允许以下情况的正则表达式:

  • M1 1AA
  • B33 8TH
  • CR2 6XH
  • DN55 1PT
  • W1A 1HQ
  • EC1A 1BB

并且不应允许,只能使用单个字母或单个数字。例如:

  • 一个
  • 2
  • AA AAA
  • 22 343

另外我如何在 javascript 中调用它。我目前正在使用 RegEx

^[A-Z0-9 ]*[A-Z0-9][A-Z0-9 ]*$

验证所有上述情况,包括单个字母或单个数字。

请帮助我如何使用 javascript 来调用文本框更改 n 使用上述正则表达式进行验证

【问题讨论】:

    标签: javascript regex validation


    【解决方案1】:

    你已经接近了。解决此问题的一种方法是

    ^[A-Z0-9 ]*[A-Z][A-Z0-9 ]*\d[A-Z0-9 ]*$|^[A-Z0-9 ]*\d[A-Z0-9 ]*[A-Z][A-Z0-9 ]*$
    

    允许在字母和数字之前、之后和之间任意字母、数字或空格 ([A-Z0-9 ]*),并允许字母在前或数字在前。

    但是,还有另一种方法可以解决此问题。您可以使用两个正则表达式。首先,检查正则表达式

    ^[A-Z0-9 ]*$
    

    检查您是否只有字母、数字和空格。然后,检查正则表达式

    [A-Z][A-Z0-9 ]*\d|\d[A-Z0-9 ]*[A-Z]
    

    检查至少一个字母 ([A-Z]) 和一个数字 (\d),两种订单都允许。请注意,此模式不包括帽子和美元符号,因此字母和数字可以出现在字符串中的任何位置。

    双正则表达式方法的好处是以后更容易阅读和修改。

    【讨论】:

    • 这也只允许字母,例如 AA AAA 和 22 232。我想要至少一个字母和一个数字。例如 A2、AA2、22A
    • @Ishan 我在我的回答中编辑了正则表达式,以检查至少一个字母和至少一个数字。
    • 我正在使用手机,所以我现在无法测试,但是类似于 [A-Z][A-Z0-9 ]*[0-9][A-Z]*|[0- 9][A-Z0-9 ]*[A-Z][0-9]* 似乎可以解决这个问题(如果你把 ^ 放在每个有效模式的开头和 $ 的末尾,你就不应该需要两个模式; 如果您确实想要两种模式,您可以在管道上拆分并分别测试字母后数字和数字后字母)
    猜你喜欢
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    相关资源
    最近更新 更多