这个正则怎么写可以让出现'/test'或者'/test/xxx'之类的字符串返回false?
var re = /[^\/test$]|[^\/test\/]/;
console.log(re.test('/test')); //false
console.log(re.test('/test/')); //false
console.log(re.test('/test/1')) //true ???
回复 (8)
X
找'/test'或者'/test/xxx'的反集 和 匹配它们再对结果取反是一样的吧。
re = /^\/(?:test$|test\/.)/
re.test('/test') // true
re.test('/test/') // true
re.test('/test/x') // true
再对结果取反就好了。
ps
var re = /[^/test$]|[^/test/]/;
[]中$符没有以...结尾的含义了,就是匹配i一个$,而且是字符集的任一个。 你写/[^/test$]/表示匹配的字符串仅含有 't' , 'e' , 's' , '\' , '$' 时返回false。
X
引用 x-web找'/test'或者'/test/xxx'的反集 和 匹配它们再对结果取反是一样的吧。 再对结果取反就好了。 ps var re = /[^\/test$]|[^\/test\/]/; []中...
@x-web 谢谢 正则应该是这样么
/^\/(?:test$|test\/)/
但是如果不想取反(譬如用在路由匹配里面) 非要用正则应该怎么写啊?
X
@xggaxlc 简单点这样写也可以
/^\/test(?:$|\/)/
想直接求反集的话,我也不会写啦~~ 坐等大神解答。
X
引用 x-web@xggaxlc 简单点这样写也可以 想直接求反集的话,我也不会写啦 坐等大神解答。
@x-web 谢谢 ! 求个大神搭救!
L
在路由里,把你的函数放在route的最后处理,捡漏就可以了
X
引用 leapon在路由里,把你的函数放在route的最后处理,捡漏就可以了
@leapon 谢谢 好吧 也只能这么干了
E
var re = !/\/test(\/[^/]*)?$/;
N
123456
参与回复
登录后即可参与回复。登录