Regex测试url和文件路径的重复单词

regex test for repeat words for url and filepath

本文关键字:单词 路径 文件 测试 url Regex      更新时间:2023-09-26

我需要提醒用户,当输入的值

  1. 不以http://或https://或//
  2. 开头
  3. 如果上述三个词(http://或https://或//)中的任何一个在输入中重复出现价值。

我尝试了下面的正则表达式,其中第一种情况成功,第二种情况失败

var regexp = /^(http:('/'/)|https:('/'/)|(''''))/;
var enteredvalue="http://facebookhttp://"
if (!regexp.test(enteredvalue.value)) {    
    alert("not valid url or filepath);
}

请帮我一下。

这似乎可以工作(尽管会有更优雅的解决方案)。希望对大家有所帮助。

var regex = /http[s]{0,1}:'/'/|'/'//;
var x = enteredvalue.split(regex);
if(!(x[0]=='' && x.length==2))
   alert("not valid url or filepath");

欢呼。

Try

var regexp = /^(?!(.*'/'/){2})(https?:)?'/'//;
var enteredvalue = "http://facebookhttp://";
if (!regexp.test(enteredvalue)) {    
    console.log("not valid url or filepath");
}

如果字符串中出现两组//,则使用负正向查找来防止匹配。

要检查多个匹配,您可以使用String。匹配RegexP和"全局搜索"选项。下面是代码的简化版本:

var enteredvalue="http://facebookhttp://"
var test_pattern = new RegExp("(https://|http://|//)", "g"); //RegExP(pattern, [option])
enteredvalue.match(test_pattern); // should return ["http://", "http://"]

当match返回多个实例时,很明显该模式被使用了不止一次。这应该有助于识别不正确的url。

而且,它比拆分干净多了。