我需要正则表达式才能检查字符串是否是目录路径。 它应该匹配
../../a/b/c
但不是
../a/../b/c
答案 0 :(得分:0)
如果您希望正则表达式与../../a/b/c
完全匹配,则正则表达式为
\.\.\/\.\.\/a/b/c
在\。(期间)前面使用\因为句号是元字符,删除它的特殊属性并使用它作为常规句点\使用。
如果要将a,b或c替换为任何字符,请使用字符类[a-z]
,或者使用\w
。在\ w的情况下,它匹配字母数字字符(A-Z a-z和0-9)。
由于我不知道你想要的目的,我可以给出正则表达式。
答案 1 :(得分:0)
如果我根据输入明确了解您的问题,那么您可以尝试:
^(?:\.{2})?(?:\/\.{2})*(\/[a-zA-Z0-9]+)+$
const regex = /^(?:\.{2})?(?:\/\.{2})*(\/[a-zA-Z0-9]+)+$/;
console.log(`../../a/b/c =`+regex.test(`../../a/b/c`));
console.log(`../a/../b/c =`+regex.test(`../a/../b/c`));
console.log(`/a/b/../c =`+regex.test(`/a/b/../c`));
console.log(`/bbb/bcc= `+regex.test(`/bbb/bcc`));
console.log(`../b/b =`+regex.test(`../b/b`));
console.log(`../b/b =`+regex.test(`../b/b`));