正则表达式模式不适用于输入模式匹配

时间:2016-08-09 09:14:16

标签: javascript html regex html5

<input type="text" id="url" name="url"  pattern="/ ^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)(amazon)|(flipkart)+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$ /" required />

显示的是我的输入。但我无法匹配任何输入。它应该正确匹配以http://flipkart.comhttp://amazon.com开头的任何网站。我检查了rubular。表达是正确的。哪里错了。请帮忙 。谢谢./

2 个答案:

答案 0 :(得分:0)

请你试试以下,它对我有用

<input type="text" id="url" name="url"  pattern="(https:[/][/]|http:[/][/]|www.)[amazon|flipkart]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&amp;%\$#\=~])*$" required />

答案 1 :(得分:0)

您的问题来自:(amazon)|(flipkart)+,您需要对这两个字符串进行分组并删除多余的+

(amazon|flipkart)

你也可以将正则表达式减少到:

(https?://(?:www\.)?)(amazon|flipkart)([-.][a-z0-9]+)*\.[a-z]{2,}(:[0-9]{1,5})?(/.*)?