Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要HTML5正则表达式_Javascript_Regex_Html - Fatal编程技术网

Javascript 需要HTML5正则表达式

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="

我需要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="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}"