正则表达式匹配但排除

时间:2017-04-13 01:53:33

标签: javascript regex

我在 JavaScript 中使用 regex 时遇到了一些问题。我需要测试URL是否与这个简单模式匹配,调用RegExp.prototype.test(value: string): boolean方法。

我希望这个网址的结果为true

/somePath
/anyPath
/doesNotMatterWhatIsHere

我希望它返回false以获取任何类似的路径:

/
/somePath/someWhereElse
/anyPath/1
/doesNotMatterWhatIsHere/pickle/chips/are/awesome

关键是,如果它是我希望/path的根true,如果它不是这个,我想要false。请帮忙。

我一直在使用http://regexr.com/

到目前为止我的正则表达式\/.+[^\/]

4 个答案:

答案 0 :(得分:1)

可能是^[^/]*/[^/]*$之类的东西?

/^[^\/]*\/[^\/]*$/带分隔符。

答案 1 :(得分:1)

请确保它以/开头,并且其他地方不包含/



var test1 = "/somePath";
var test2 = "/anyPath";
var test3 = "/doesNotMatterWhatIsHere";

var empty = "/";

var fail1 = "/somePath/someWhereElse";
var fail2 = "/anyPath/1";
var fail3 = "/doesNotMatterWhatIsHere/pickle/chips/are/awesome";

regex = /^[/]([^/]+)$/;

console.log(regex.test(test1));
console.log(regex.test(fail1));
console.log(regex.test(empty));




答案 2 :(得分:0)

要回答您的问题,此正则表达式将起作用:/^\/[^\/]*$/。它基本上检查第一个字符是/,其余字符不是/

但我怀疑您可能还希望匹配"/somePath/",因为将尾随斜杠视为规范网址是很常见的。

如果你想这样做,这个正则表达式会考虑尾部斜杠:

/^\/[^\/]*\/?$/

它检查第一个字符是否为/,其余字符不是/,最后是可选的/

答案 3 :(得分:0)



var pattern=/^\/[^\/]+$/;
console.info(pattern.test('/somePath'));
console.info(pattern.test('/doesNotMatterWhatIsHere'));
console.info(pattern.test('/somePath/someWhereElse'));
console.info(pattern.test('/doesNotMatterWhatIsHere/pickle/chips/are/awesome'));




试试吧