求教编写正则表达式的问题

弧线之内 发布于 2016/10/19 14:25
阅读 153
收藏 0

求教一个问题,关于正则表达式的 

   现在要写一个正则,要求是:“/${1}/${2}”,${1}处可以是处了"mobile"以外的任意字母或者数字,且不能为空,${2}处是任意非空字符串。

     也就是${1}处如果是“mobile”就返回fase,如果是其它的非空字符串就返回true,求教怎么写。

加载中
0
小紫羽
小紫羽

应当使用断言

/((?<!mobile)[0-9z-a]*)/(.*?)



弧线之内
弧线之内
回复 @小紫羽 : 恩~谢谢哈~我再想一下~感谢~
小紫羽
小紫羽
回复 @弧线之内 : 要么你用2楼的方法,你可以先判断 /(mobile)/(.*) 然后 false 再取 /(.*)/(.*)
弧线之内
弧线之内
回复 @小紫羽 : 还是不行,这个只能检测是否包含mobile这个字符串,但是不能检测是否等于这个字符串
小紫羽
小紫羽
回复 @弧线之内 : js的话用这个 /((?!mobile)[0-9a-z]*)/(.*)
弧线之内
弧线之内
大哥,不行啊,这个表达式js检测不通过··
0
Feng_Yu
Feng_Yu

这种有逻辑判断的需求不建议用正则去实现,会把正则搞得很复杂

你可以把{1}和{2}用正则提取出来单独判断

弧线之内
弧线之内
不行啊,用的urlrewrite,没法提取 T.T
0
吴笑笑
var reg = /^\/((?!mobile)\w+)\/.+/;   //JS



吴笑笑
回复 @弧线之内 : var reg = /^(?!(\/mobile\/))\/\w+\/.+/;
弧线之内
弧线之内
还是不行,如果写mobile1的话还是会返回false,应该要返回true的
返回顶部
顶部