【问题标题】:Regular expression detect that string contains both letters and numbers正则表达式检测字符串同时包含字母和数字
【发布时间】:2017-11-12 09:40:31
【问题描述】:

正则表达式只检测字母+数字不只检测数字不只检测数字

^(.*?(\b([A-Z]{2})([0-9]{7})\b)[^$]*)$

例如:

AB1234567 true
09AR30253 true
123456789 false
0912345JL true
AABBCCAAA false

【问题讨论】:

  • 我要检测2个字符和7个数字......
  • 在这个链接中不要回答我的问题!!!
  • 你的意思是你只想匹配一个在 7 位数字之间有 2 个 连续 字母的字符串?那么,1234RE567 有效,1234R5E67 无效?
  • @WiktorStribiżew 是的!

标签: javascript regex


【解决方案1】:

要匹配包含 2 个连续字母且其余只是数字的 9 个字符字符串,您可以使用

/^(?=.{9}$)\d*[a-zA-Z]{2}\d*$/

请参阅regex demo

详情

  • ^ - 字符串开头
  • (?=.{9}$) - 字符串长度必须为 9 个字符
  • \d* - 零个或多个数字
  • [a-zA-Z]{2} - 2 个字母
  • \d* - 零个或多个数字
  • $ - 字符串结束。

JS 演示:

var strs = ['AB1234567', '09AR30253', '0912345JL', '123456789', 'AABBCCAAA'];
var rx = /^(?=.{9}$)\d*[a-zA-Z]{2}\d*$/;
for (var s of strs) {
  console.log(s, "=>", rx.test(s));
}

【讨论】:

    猜你喜欢
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多