检查一个字符串是以一个字母开头,后跟数字,然后是任何字符

时间:2017-06-30 19:04:21

标签: javascript regex

如何在以下场景中使模式返回true

m1m1aM100bcs45S396xyz

在这样的场景中

和false:

''m11ammMxmm1SS1b

要调整的模式:/^m\S\.*/i.test(text)

现在它在开头有任意数字的字母,在第一个字母后面有非数字

2 个答案:

答案 0 :(得分:4)

您可以使用

/^[a-z]\d.*/i

请参阅regex demo。如果字符串可以包含换行符,请将.*替换为[\s\S]*

<强>详情

  • ^ - 字符串开头
  • [a-z] - ASCII字母
  • \d - 数字
  • .* - 除了换行符之外的任何0 +字符([\s\S]将匹配任何字符)。

注意:如果您需要使用匹配值,最后.*(或[\s\S]*}只是个好主意。如果没有,当与RegExp#test()一起使用时,您可以省略该模式的那一部分。

答案 1 :(得分:2)

你只能测试前两个字符。

var cases = ['m1', 'm1a', 'M100bc', 's45', 'S396xyz', '', 'm', '1', '1a', 'mm', 'Mx', 'mm1', 'SS1'];
console.log(cases.map(s => (/^[a-z]\d/i.test(s))));