如何使用JavaScript仅移除URL中的www.部分
如何用JavaScript移除URL中的
www.部分? 你之前用的正则/^(?:www\.)?/i只能匹配字符串开头的www.,但对于带协议(如https://)的URL,www.出现在协议之后,这个正则就无法匹配到了。
要实现同时处理带协议和不带协议的URL,可以调整正则表达式,匹配字符串开头或者协议(//)之后的www.(不区分大小写),具体代码如下:
// 处理带协议的URL "https://www.example.com/".replace(/(^|\/\/)www\./i, "$1"); // 输出: "https://example.com/" // 处理不带协议的URL "WWW.example.com/".replace(/(^|\/\/)www\./i, "$1"); // 输出: "example.com/"
正则说明:
(^|\/\/):匹配两种情况——字符串开头(^),或者协议后的双斜杠(\/\/,转义后表示//),用分组捕获这部分内容,替换时保留。www\.:匹配www.,.转义后表示实际的点号。i:不区分大小写标志,匹配WWW.、WwW.等各种大小写组合。
如果需要支持更多协议(如ftp://、ws://),这个正则依然有效,因为它只关注//后面的www.,不限制协议类型。
内容的提问来源于stack exchange,提问作者Hanzla
相关产品推荐
相关产品推荐

