2011-02-04 106 views
0

请参阅jsfiddle。 http://jsfiddle.net/yNJKj/13/正则表达式不能正常工作

这个正则表达式应该只显示顶级项目。但它以某种方式sohws在一些类别的第二级项目。

我在做什么错? 谢谢!

+1

可以链接到其他网站,但也包括重要的部分(如正则表达式!)*在您的问题本身*。 StackOverflow应该是独立的。其他资源可以删除,移动等。此外,人们不应该去另一个网站看到你的完整问题。 – 2011-02-04 16:42:38

回答

5

我想你想的正则表达式是:

/^.*\/activity\/[^/]*$/i 

Updated fiddle

或可能

/^.*\/activity\/[^/]*[a-zA-Z]$/i 

Updated fiddle

(我不知道为什么你有单字符[a-zA-Z]匹配结束。)

你原来

/^.*\/activity\/.*[a-zA-Z]$/i 

...允许/.*[a-zA-Z]前面的匹配,因此包括子类别。

+0

谢谢。它像魔术一样工作。我很欣赏这一点。 – user194076 2011-02-04 16:52:21

0

我想你应该改变正则表达式来/^.*\/activity\/[a-zA-Z]*$/i,因为.配衬所有字符,包括/

1

我的猜测是它的这一部分,在正则表达式的结尾:你是说这

\/.*[a-zA-Z]$ 

符合以下条件:

  1. 斜杠/
  2. 什么任何长度
  3. 一个大写或小写字母
  4. 字符串

我不是你什么100%和年底都不尝试匹配,但通配符部分(.*)可能匹配所有你想要的东西,以及你不需要的东西。使正则表达式更具体可能会有所帮助。

在一个不相关的说明中,如果使用if语句,而不是单个无序列表和 ,则可以使用更多语义和更易于使用的嵌套列表。事情是这样的:

<ul> 
    <li> 
     <a href="*">Category</a> 
     <ul> 
      <li><a href="*">Sub-Category</a></li> 
      <li><a href="*">Sub-Category</a></li> 
     </ul> 
    </li> 
</ul> 

但是,如果你决定坚持使用非中断空格,则不能使用那些决定什么获取隐藏?它看起来像你所要做的就是隐藏任何以&nbsp;开头的东西,那样会达到你想要的。