null
^(?=.*[0-9])(?=.*[A-z])[0-9A-z-]{17}$
应匹配“17个字母数字字符,连字符也可以,必须包括至少一个字母和至少一个数字”
它将正确匹配:
ABCDF31U100027743
并正确拒绝匹配:
AB$DF31U100027743
null
null
AB^DF31U100027743
因为您的字符类[A-z]
与此符号匹配。
[A-z]
匹配[
,\
,]
,^
,_
,`
和英文字母。
其实是一个常见的错误。您应该使用[a-zA-Z]
仅允许使用英文字母。
下面是Expresso的一个可视化显示,显示了[A-z]
范围实际覆盖的内容:
因此,这个正则表达式(带有i
选项)不会捕获您的字符串。
^(?=.*[0-9])(?=.*[a-z])[0-9a-z-]{17}$
在我看来,使用ignorecase
选项来避免这样的问题并缩短正则表达式总是比较安全的。
我的表单中有2个输入字段(电话号码),我应该验证这些输入。数字0-9和()-只允许,位数应该在5和11之间{5,11}。我试着用方法替换。你能解释一下,它是如何工作的吗?
问题内容: 允许数字和点的正则表达式是什么?关于\D这只允许数字,但不允许一个点,我需要它允许数字和一个点,这是一个浮点值,当我在中执行函数时需要有效,但我需要的只是正则表达式那只允许我需要它允许的。 这将是JavaScriptreplace函数的本机语言,用于删除非数字和其他符号(点除外)。 问题答案: 如果您想允许1和1.2: 如果您希望允许,和: 如果只允许1.2(仅浮动): \d允许位数(
问题内容: 试图了解正则表达式,我在重复的部分:。 我有以下代码: 如您所见,两个字符串都不匹配该模式。为什么会这样呢? 问题答案: 您不应该在逗号后加空格,这是多余的。
这个正则表达式什么意思?这里$1代表什么?
正则获取指定字符到下一个大写字符之间的内容