gpt4 book ai didi

javascript - 正则表达式字符串与管道不匹配

转载 作者:行者123 更新时间:2023-11-28 02:00:53 24 4
gpt4 key购买 nike

我有以下正则表达式

var catalogueHrefRegex = /\/automobiles\/(cr)|(ts$)|(zs)|(ax)|(wx)$/;

例如,我正在针对网址进行测试

var href = "xxx/compare/ax?model=xxx";

我运行以下代码

catalogueHrefRegex.test(href)

我期望它返回 false,但它返回 true。我正在尝试像

这样的网址
/automobiles/cr/...
/automobiles/ts/...
/automobiles/zs/...
/automobiles/ax/...
/automobiles/wx/...

我在 ts 末尾有 $ 因为我不想匹配 'automobiles/tsx'我尝试了以下方法,但没有一个按预期工作

/\/automobiles\/((cr)|(ts$)|(zs)|(ax)|(wx))$/
/\/automobiles\/*(cr)|(ts$)|(zs)|(ax)|(wx)*$/

我不擅长正则表达式,所以我的尝试是在谷歌搜索之后进行的。我怀疑我设置管道的方式错误或分组不正确,因为当我尝试“cr”时,它按预期工作,但我不确定如何对 cr/ts/zs/ax/wx 进行分组,以便它说匹配汽车/cr 或 ts 或 ...

http://jsfiddle.net/WdXXx/

我想要的结果的正确正则表达式是什么?感谢您的宝贵时间

最佳答案

所以有几个问题。首先,交替适用于包含它的整个组。其次,$匹配输入字符串的末尾(或多行模式下的行尾)。所以你的第一个正则表达式:

/\/automobiles\/(cr)|(ts$)|(zs)|(ax)|(wx)$/ 

将匹配文字 /automobiles/cr 或文字 ts 后跟字符串末尾或文字 zs 或文字ax 或文字 wx 后跟字符串末尾。

我怀疑您想要这样的模式:

/\/automobiles\/(cr|ts|zs|ax|wx)\//

这将匹配文字 /automobiles/ 后跟文字 crtszsaxwx 后跟文字 /

我删除了 $ 因为在您的示例中您使用了 /...,这意味着最后的 / 后面还有其他字符。

你可以测试一下here .

关于javascript - 正则表达式字符串与管道不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18448617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com