HTML5的"pattern"属性在所有浏览器中都能正常工作吗?

6

HTML5的pattern属性在所有浏览器中都能够工作吗?如果不能,那么我应该使用哪种技术才能在所有浏览器中工作呢?


1
@MarcB 这比除以0还糟糕! - Sonic42
@MarcB HTML5实际上包括一个可以为输入框(可能还有其他元素,我只是快速检查了一下)设置的“模式”,因此作者实际上是在询问关于HTML5特定功能的问题。 - Kitsune
@kitsune:是的,但当时OP的问题不够具体,无法区分模式属性或“设计模式”。 - Marc B
@Sonic42:实际上,除以0的阶乘是一种有效的操作。 - Rok Kralj
1个回答

9
不,它不能。但是您可以使用JavaScript获取属性并以此验证。
if ( ! input.hasOwnProperty('pattern') 
     && ~input.value.search(input.pattern)) {
   // Valid input field for browsers which don't support `pattern` attribute.
}

jsFiddle.


我可能错了,但我认为你可以将任何“模式”传递给“regexp.test(pattern)”来验证它。 - Wesley Murch
抱歉我的问题不够清晰。我在我的登录表单中使用了以下代码:<input type="text" name="username" maxlength='16' required="required" pattern="[a-zA-Z0-9-_]{3,}" />,但是这个正则表达式在某些浏览器上无法工作。请问应该如何让它在所有浏览器上都能正常工作? - pico

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接