2011-03-30 233 views
14

我处于需要在JavaScript中重写url并将其从http协议切换到https的情况。使用正则表达式和javascript将HTTP URL重写为HTTPS

我可以匹配的HTTPS网址:

if(url.match('^http://')){ 

,但我怎么形成使用正则表达式和JavaScript的HTTPS URL?

url = "https://" + ?; 
+0

,如果用户已禁用JavaScript? – Neal 2011-03-30 19:26:38

+0

我们的网站有一个免责声明,已经声明它不会在这种情况下工作。许多事情会被打破是JavaScript被禁用。 – stevebot 2011-03-30 19:27:37

+0

安全性不应该依赖浏览器的JavaScript支持。 – Gumbo 2011-03-30 19:32:22

回答

44

用正则表达式直接替换:

url = url.replace(/^http:\/\//i, 'https://'); 
8

无法通过简单的更换HTTP字符串做些什么呢?

if(url.match('^http://')){ 
    url = url.replace("http://","https://") 
} 
+0

是的,但它不像正则表达式那样控制器 – stevebot 2011-03-30 19:29:07

+2

替换的第一个参数可以是正则表达式 – Stephan 2011-03-30 19:32:07

+0

好点。 (upvoted) – 2011-03-30 19:37:52