【发布时间】:2011-10-01 00:06:48
【问题描述】:
我有一些元素:
<p>Windows Phone 7</p>
<p>Windows Phone 7.5 "Mango"</p>
<p>Phone Windows 7</p>
- 如果我搜索
Phone 7,它应该会返回所有结果。 - 如果我搜索
7 Windows,它应该会返回所有结果。 - 如果我搜索
"Phone Windows",它应该只返回最后一个元素。
基本上用户会在input 中输入一些文本,我想用正则表达式实现AND 和OR。
我该如何实现?
【问题讨论】:
-
并将每个元素放到一个数组中,循环遍历数组,如果一个元素包含搜索字符串,则将其添加到
results数组中,然后返回results数组。 -
您必须更详细地定义规则。例如,代码如何知道
7 Windows不依赖于顺序,但Phone Windows是?单词匹配将使所有三个匹配Phone Windows。字符串匹配不会匹配7 Windows的任何内容。我们需要更多的逻辑规则。另外,您是否只匹配整个单词? -
@NullUserExceptionఠ_ఠ 不带引号它应该匹配所有。带引号的都不应该匹配。
-
接近了吗? jsfiddle.net/KUYcA
-
为什么需要使用正则表达式?如果规则如您所说的那么简单,那么您最好使用
indexOf。
标签: javascript jquery regex