2016-04-25 48 views
-1

我需要HTML5正则表达式如下HTML5 Regual表达所需

CC/YYYY匹配/ MM/DDDDDDDD

CC:两个字符的国家代码(不区分大小写)

YYYY :4位数年份

MM:两位数月

DDDDDDDD: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"> 

感谢提前:)

+0

<输入的tabindex = “5” 类型= “文本” 名称= “说明” 大小= “19” 所需图案=“^ [A- zA-Z] + [a-zA-Z] \/\ d {4} \/\ d {2} \/\ d {8} ^“placeholder =”CC/YYYY/MM/XXXXXXXX“> –

+1

Your模式可以,请参阅https://jsfiddle.net/ff1syanw/只需删除不必要的'^'和'$'(它们会自动添加)。 –

+0

@WiktorStribiżew你介意发表一个答案吗? – d0nut

回答

2

您应该记住HTML5 pattern attribute接受作为字符串的正则表达式模式,将默认使用^(?:)$进行锚定。

用于该属性的正则表达式语言是相同的,在JavaScript中使用,所不同的是图案属性与匹配整个值,不仅仅是任何子集(有点仿佛它意味着在该模式开始时为^(?:,在末尾)$)。

这意味着,您不必跳过/斜杠,而且实际上不必双反斜杠。

使用

pattern="[a-zA-Z]{2}/\d{4}/\d{2}/\d{8}" 

input:valid { 
 
    color: green; 
 
} 
 
input:invalid { 
 
    color: red; 
 
}
<form> 
 
    <input tabindex="5" value="en/1234/05/12345678" type="Text" name="description" size="19" required pattern="[a-zA-Z]{2}/\d{4}/\d{2}/\d{8}" placeholder="CC/YYYY/MM/XXXXXXXX"> 
 
    <input type="Submit"/> 
 
</form>

+0

还有一些东西仍然是错误的:(你可以检查一下这个html文件:http://sgscoc.aman-tech.com/NEW.HTML –

+1

是的,看源代码 - 它显示'pattern =“[a-zA- Z] 2/\ d4/\ d2/\ d8 $“'而它应该是'pattern =”[a-zA-Z] {2}/\ d {4}/\ d {2}/\ d {8 }“'。有一些模板处理问题,我不知道是什么删除了'{'和'}',请检查。也许,你需要加大括号并使用'{{'和'}}'或者,为了安全起见,只需重复以下模式:'pattern =“[a-zA-Z] [a-zA-Z]/\ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d \ d“'。 –

+0

你让我的一天@WiktorStribiżew非常感谢 –

-2

没有“正则表达式“HTML5!

虽然您可以使用JavaScript来对HTML页面元素进行验证等等!

+0

我为HTML5正则表达式输入了很多模式,最后一个例子在这里,但是我在模式中出错了,

+1

”HTML5中没有“正则表达式”!“ - 假。 https://www.w3.org/TR/html5/forms.html#attr-input-pattern – Quentin

+0

更新你的问题,并添加你想要的输入的'模式'属性。 – Uzbekjon

-1

您需要跳过斜杠。从一开始

  • [a-z]{2}匹配任何字母两次
  • \/比赛斜杠
  • \d{4}比赛4个位数
  • \/比赛斜杠
  • \d{2}比赛

    /^[a-z]{2}\/\d{4}\/\d{2}\/\d{8}$/i 
    
    1. ^启动2位数字
    2. \/匹配正斜杠
    3. \d{8}匹配8位数字
    4. $匹配端

    ,并使用正则表达式/i选项指定的情况下在敏感

  • +2

    不,不应该跳过斜线。该模式以字符串形式发送,而不是作为正则表达式文字发送。而且您不能在HTML5模式属性中使用正则表达式。 –

    +0

    @WiktorStribiżew:哦。我的错。我没有意识到它要去的地方。 – IMTheNachoMan

    0

    图案=“^ [A- zA-Z] [a-zA-Z]/\ d {4}/\ d {2}/\ d {8} $“

    +0

    我试过这样,它不会接受它! –

    +0

    解释:“不会接受它”。我没有收到错误,是吗? –

    +0

    我得到HTML 5错误,请匹配请求的格式 –