让URL只允许一些字符的正则表达式

  譬如 限制只允许正则出现以下的

  a-Z

  0-9

  http:// 匹配连贯

  https:// 匹配连贯

  / 不可连续两个出现

  &

  %

  ? 不可连续两个出现

  = 等号

  - 中划线

  _ 下划线

  . 点 很重要

  有如下正则符合

  ^((?:http|https)://)?((?![/?]{2,})[a-zA-Z0-9\-._%&=/?])+$

  RegexBuddy3 翻译工具

  ^((?:http|https)://)?((?![/?]{2,})[a-zA-Z0-9\-._%&=/?])+$

  •断言在字符串的开头位置

  •逆向引用1

  ◦重复0次到1次,尽可能多的匹配(贪婪)

  ◦用以下正则表达式匹配

  ■用以下正则表达式匹配(这一个正则表达式失败时用下一个正则表达式的替代)

  ■匹配字符“http”

  ■用以下正则表达式匹配(这一个正则表达式匹配失败,这一集合都不匹配)

  ■匹配字符“https”

  ◦匹配字符“://”

  •逆向引用2

  ◦重复1次到无限次,尽可能多的匹配(贪婪)

  ◦注:你又逆向引用本身。匹配将以最后一个逆向引用做为引用。把重复的逆向引用迭代。

  ◦否定式向前查看

  ■匹配一个在下面的列表出现的字符“/?”

  ■Between 2 and unlimited times, as many times as possible, giving back as needed (greedy)

  ◦匹配一个在下面的列表出现的字符

  ■一个字符 其范围是a到z之间

  ■一个字符 其范围是A到Z之间

  ■一个字符 其范围是0到9之间

  ■字符 “-”

  ■一个字符 是“._%&=/?”其中的一个

  •断言在字符串的末端位置