【问题标题】:Javascript regex to match atleast one word starting with number across multiple words but with atleast two wordsJavascript 正则表达式匹配至少一个以数字开头的多个单词但至少有两个单词的单词
【发布时间】:2016-03-24 18:30:59
【问题描述】:

我正在使用 Javascript 正则表达式。 我有一个输入字段,它应该只通过以下条件

  • 值只能包含字母和数字
  • 值至少应该有两个词(可以有两个以上)
  • 只有一个单词开头应该有数字(一个或多个)
  • 可以在末尾允许空格

请帮助我,因为我是 Regex 的新手。

我尝试使用以下代码。它适用于两个词,但不允许超过两个词。 /^[\d]+[a-zA-Z]*\s+[a-zA-Z]+$|^[a-zA-Z]+\s+\b[\d]+[a-zA-Z]*\b$/

【问题讨论】:

  • 您的有效输入是什么?显示一些有效和无效的样本
  • 用于街道名称和号码验证。可以是:5413 Flat / 3rd Street / 562test test / test 5415 / test 5test 它不能是:test5 test, te5st test, test te5st, test test55 不允许特殊字符

标签: javascript angularjs regex html


【解决方案1】:

使用积极的前瞻,您可以使用这个正则表达式:

/^^(?=.*\b\d[a-z\d]*\b)(?:\b[a-z\d]+\b[ \t]*){2,}$/i

RegEx Demo

(?=.*\b\d[a-z\d]*\b) 是正向前瞻,以确保至少有一个以数字开头的 woth。

【讨论】:

  • 嗨,这允许单个单词,并且也只匹配数字.. 不应该是这种情况至少两个单词只有一个带有数字。
【解决方案2】:

试试这个正则表达式。

/^[\d]+[a-zA-Z]*\s+[a-zA-Z]+$|^([a-zA-Z]+\s+)*(\b[\d]+[a-zA-Z]*\b)+$/

【讨论】:

    猜你喜欢
    • 2013-06-14
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多