如何在以下场景中使模式返回true
:
m1
,m1a
,M100bc
,s45
,S396xyz
和false:
''
,m
,1
,1a
,mm
,Mx
,mm1
,SS1b
要调整的模式:/^m\S\.*/i.test(text)
现在它在开头有任意数字的字母,在第一个字母后面有非数字
答案 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))));