我有以下脚本:http://jsfiddle.net/q7pjfyxu/

脚本:

function addhttp(url) {
   if (!/^(f|ht)tps?:\/\/[mM]\./i.test(url)) {
      return true;
   }
   return false;
}

alert(addhttp("https://m.mysite.com/"));


我想得到不同的变化:

// - https://m.
// - http://m.
// - https://www.m.
// - http://www.m.


目前无法正常运作...

最佳答案

您可以为www.部分使用可选组:

^(?:f|ht)tps?:\/\/(?:www\.)?m\.

regex demo

您也可以将第一个捕获组设为非捕获组(?:

您可以缩短if / else,因为test返回一个布尔值:

return (!/^(?:f|ht)tps?:\/\/(?:www\.)?m\./i.test(url));




const strings = [
  "https://m.",
  "http://m.",
  "https://www.m.",
  "http://www.m."
];
strings.forEach(s => {
  console.log(addhttp(s));
});

function addhttp(url) {
  return (!/^(?:f|ht)tps?:\/\/(?:www\.)?m\./i.test(url));
}

关于javascript - 如何查看网址是否仅适用于移动设备,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53728239/

10-16 19:55