我正在尝试一个正则表达式来"部分匹配"(字符串中的任何位置):
abcd1234 1a2b
我搜索了一个正则表达式,发现了这个:
/^(?=.*d)(?=.*[a-zA-Z])$/
但是它只接受字母数字;abcd123!@#$
不匹配
如何解决这个问题?
这个怎么样?
/^.*[a-zA-Z].*d.*|.*d.*[a-zA-Z].*$/
- 一个字母字符,后面跟着一个数字字符,任意数量的其他类型的字符在它们的两侧或中间;或
- 反过来(数字后面跟着字母)
如果我没理解错的话,这就是你想要的:
/^.*[a-zA-z].*d.*/
/*
'2344' => false
'abcd' => false
'a1cd' => true
'abc3' => true
'ab@3' => true
'a_*3' => true
'2_!b' => false
*/
下面的代码将允许字母和数字以任意一种顺序出现:
/^.*((d.*[a-zA-Z])|([a-zA-Z].*d)).*$/