【发布时间】:2016-04-26 19:55:23
【问题描述】:
我正在匹配通配符搜索输入。这是一个名称字段。 以下是我需要匹配的条件。
- 如果用户选择进行通配符搜索,他必须输入至少 3 个字母数字字符
- 用户可以/不可以在字符串的开头或结尾输入通配符,但可以在任一侧。
- 单词之间允许有空格。
我想提一下,我在进行匹配之前会修剪字符串。这是我到目前为止所尝试的。
^[^\W_](\s?\w?)*$|^[^\W_]{3,}(\s?\w?)*\*$|^[\*][^\W_]{3,}(\s?\w?)*$
以下是我尝试过的一些示例 -
- 某人 xxx,某人 xxx yyy - 通过
- 某人* xxx- 失败
- 某人,某人 - 通过
这是我想要的最接近的匹配项 - 但这些测试用例失败了。
AB asf* -- 失败,这将通过- ABC asf*
*AB asf -- 失败,这将通过- *ABC asf
我知道我的条件是 - 以至少 3 个字母数字字符开头并重复空格和字母数字字符。
这就是我需要帮助的地方。
谢谢。
【问题讨论】:
-
为什么是正则表达式?验证功能在这里应该没问题
-
正则表达式可以成为这些情况的干净解决方案,我向他们学习,stackoverflow 社区总是在那里寻求帮助。
-
- ccf - 我将您的答案标记为正确答案。抱歉,如果问题中有一些混淆。我将编辑我的问题以添加匹配和不匹配场景。
标签: javascript regex