我正在研究
@L_403_0@输入模式polyfill,我正在尝试在
JavaScript中验证输入类型= url,就像浏览器(Chrome)一样,但无法找到有关JavaScript或PERL兼容正则表达式的任何文档.因为它是一个polyfill,我不特别介意它是否完全匹配所有URL(这是不可能的),而是它模仿浏览器的工作方式.
有人会知道PERL语法中的相同模式吗?
谢谢
解决方法
阅读
http://www.w3.org/TR/html5/forms.html#url-state-(type=url)的相关规范:
您的polyfill应首先清理输入,即删除换行符并修剪字符串.句子“用户代理不得允许用户插入”LF“(U 000A)或”CR“(U 000D)字符”也可能有趣.
结果应该是valid,absolute URL.引用的RFC 3986和3987将描述URL验证,关于parsing URLs的部分可能也很有趣.
您的polyfill可能不仅验证URI,它也可能是resolve relative URIs.至少,使用algortihm验证URI会更简单,而不是找到适当的正则表达式.然而,甚至RFC也提到了在appendix B中解析已经验证的URI的正则表达式.