Html 正则表达式:检查字符串是否有1到6位数字,以及恰好4个特殊字符
我正在尝试使用正则表达式验证字符串,该字符串必须有1到6个数字,并且正好有4个特殊字符(我所说的特殊字符是指类似$!^的字符)(“”。非英语/拉丁字符可以解释为字母数字,在这种情况下并不重要 我在HTML输入的模式属性中使用这个正则表达式 示例:12?74@“=5应为有效字符串 我已经试过:Html 正则表达式:检查字符串是否有1到6位数字,以及恰好4个特殊字符,html,regex,Html,Regex,我正在尝试使用正则表达式验证字符串,该字符串必须有1到6个数字,并且正好有4个特殊字符(我所说的特殊字符是指类似$!^的字符)(“”。非英语/拉丁字符可以解释为字母数字,在这种情况下并不重要 我在HTML输入的模式属性中使用这个正则表达式 示例:12?74@“=5应为有效字符串 我已经试过: ([1-9]{1,6})([@"?']{4}) 但是它不能像预期的那样工作,当字符混合时,我无法验证字符串,例如:1254@@@is okai,但12@@@44无效 有人能帮我解决这个问题吗?我
([1-9]{1,6})([@"?']{4})
但是它不能像预期的那样工作,当字符混合时,我无法验证字符串,例如:1254@@@is okai,但12@@@44无效
有人能帮我解决这个问题吗?我是新加入regex的,我需要一些帮助。谢谢!您可以使用
pattern="(?=(?:[^0-9]*[0-9]){1,6}[^0-9]*$)(?=(?:[A-Za-z0-9]*[^A-Za-z0-9]){4}[A-Za-z0-9]*$).*"
见
请注意,HTML5正则表达式自动用^(?:
和)$
包装,因此生成的模式如下所示
/^(?:(?=(?:[^0-9]*[0-9]){1,6}[^0-9]*$)(?=(?:[A-Za-z0-9]*[^A-Za-z0-9]){4}[A-Za-z0-9]*$).*)$/
详细信息
-字符串的开头^
-1到6个数字,用字符串中允许的任意数量的非数字分隔(?=(?:[^0-9]*[0-9]){1,6}[^0-9]*$)
-除ASCII字母或数字外,正好有4个字符,用字符串中允许的任意数量的ASCII字母或数字分隔(?=(?:[A-Za-z0-9]*[^A-Za-z0-9]){4}[A-Za-z0-9]*$)
-尽可能多的0+字符(断线字符除外)*
-字符串结束$
你认为什么“特殊”??正则表达式在哪里使用?任何特殊字符。我正在测试第一个答案,因为它似乎起作用了!您可以分两个阶段进行测试——首先过滤掉数字,检查剩下的是四个特殊字符;然后过滤掉除数字外的所有内容,并检查是否还有一到六个数字。好的,这是JavaScript ECMAScript和这个版本取决于浏览器。抱歉,匹配任何Unicode字母都不容易。最好的办法是只考虑ASCII字母和数字作为一个有效的字母数字字符,这样的模式很高兴你终于意识到了需求。我不介意我的答案的下注,虽然我真的不知道W。为什么我正确的,有效的,解释性的答案被否决了。如果你需要更多的帮助,请通过评论告诉我。