Javascript 需要HTML5正则表达式
我需要HTML5正则表达式来匹配以下内容 抄送/年/月/日 CC:两个字符的国家/地区代码(不区分大小写) YYYY:4位数字年份 MM:两位数月份 dddddd:8位发票号 我尝试了以下使用PHP和javascript的方法,但我确实需要它在HTML 5上运行:Javascript 需要HTML5正则表达式,javascript,regex,html,Javascript,Regex,Html,我需要HTML5正则表达式来匹配以下内容 抄送/年/月/日 CC:两个字符的国家/地区代码(不区分大小写) YYYY:4位数字年份 MM:两位数月份 dddddd:8位发票号 我尝试了以下使用PHP和javascript的方法,但我确实需要它在HTML 5上运行: ^[a-zA-Z][a-zA-Z]\/\d{4}\/\d{2}\/\d{8}$ 请给出一个完整的示例,即: <input tabindex="5" type="Text" name="description" size="
^[a-zA-Z][a-zA-Z]\/\d{4}\/\d{2}\/\d{8}$
请给出一个完整的示例,即:
<input tabindex="5" type="Text" name="description" size="19" required pattern="^[a-zA-Z]+[a-zA-Z]\/\d{4}\/\d{2}\/\d{8}^" placeholder="CC/YYYY/MM/XXXXXXXX">
提前感谢:)HTML5中没有“Regex”ing
不过,您可以使用javascript对HTML页面元素进行验证等 你需要避开斜线
/^[a-z]{2}\/\d{4}\/\d{2}\/\d{8}$/i
^
从头开始[a-z]{2}
将任何字母匹配两次\/
匹配正斜杠\d{4}
匹配4位数字\/
匹配正斜杠\d{2}
匹配两位数字\/
匹配正斜杠\d{8}
匹配8位数字$
匹配结束/i
regex选项指定区分大小写的模式=“^[a-zA-Z][a-zA-Z]/\d{4}/\d{2}/\d{8}$”您应该记住,接受regex模式作为字符串,默认情况下将使用^(?:
和)$
锚定
用于此属性的正则表达式语言与JavaScript中使用的正则表达式语言相同,不同之处在于,模式属性与整个值相匹配,而不仅仅是与任何子集相匹配(有点像它在模式的开头暗示了一个^(?:
),在结尾暗示了一个)$
)
这意味着,您不必避开/
斜杠,实际上也不必重复反斜杠
使用
输入:有效{
颜色:绿色;
}
输入:无效{
颜色:红色;
}
您的模式还可以,请参见删除不必要的^
和$
(它们是自动添加的)。@WiktorStribiżew您介意将其作为答案发布吗?@WiktorStribiżew不,实际上。如果您查看输入元素op make,模式开始[a-zA-Z]+[a-zA-Z]…
@MohammadAwniAli:您是否将
元素放入
中?尝试为HTML5正则表达式键入许多模式,最后一个示例在这里,但我在模式中有一些错误,“HTML5中没有“正则表达式”!-错误。更新您的问题并将其添加到输入的模式
属性中。@Uzbekjon阅读该问题,您将看到发布的示例OP已将其包含在模式属性中。请检查此html文件中的COC编号字段:否,斜杠不应转义。模式作为字符串发送,而不是作为正则表达式文本发送。您不能在HTML5模式属性中使用正则表达式文字。@WiktorStribiżew:Oh。我的错。我不知道它要去哪里。解释一下:“我不会接受它”。我没有收到错误,是吗?我收到HTML 5错误,请匹配请求的格式。您可以为您看到的内容创建一个JSFIDLE吗?这是我的FIDLE,当模式匹配时,文本输入应该是绿色的。您也可以在这里测试模式。仍然有问题:(请检查这个html文件:是的,请看源代码-它显示pattern=“[a-zA-Z]2/\d4/\d2/\d8$”
而它应该是pattern=“[a-zA-Z]{2}/\d{4}/\d{2}/\d{8}”
。有一些模板处理问题。我不知道是什么删除了{code>{code>和}
,请检查。也许,您需要将大括号加倍并使用{{
和}
。或者,为了安全起见,只需重复这些模式:pattern=“[a-zA-Z][a-zA-Z]/\d\d\d/\d\d/\d\d\d\d\d\d\d\d”
。
pattern="[a-zA-Z]{2}/\d{4}/\d{2}/\d{8}"