正则表达式接受至少一个alpha字符和数字字符



我正在尝试一个正则表达式来"部分匹配"(字符串中的任何位置):

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)).*$/

相关内容

最新更新