用于字母数字通配符搜索的正则表达式
Posted
技术标签:
【中文标题】用于字母数字通配符搜索的正则表达式【英文标题】:Regular Expression for Alpha numeric wildcard search 【发布时间】:2019-07-29 22:16:39 【问题描述】:我需要一个搜索框的正则表达式,它只接受字母数字值,但允许通配符搜索,最后带“*”。
类似“123*”、“abc*”或只是“abc”
$(".onlyAlphaNumericWildcard").keypress(function (e)
//Alphanumeric and also an optional "*" at the end
var keyCode = e.which;
var inp = String.fromCharCode(keyCode);
if (/[a-zA-Z0-9*]/.test(inp))
return true;
return false;
);
但是上面的那个在任何位置都需要多个 * 字符。我想将其限制为只有一个,如果可能,也仅限于最后。
感谢任何帮助。
谢谢!
【问题讨论】:
【参考方案1】:类似这样的:
^[a-zA-Z0-9]+\*?$
【讨论】:
【参考方案2】:使用此正则表达式/(^\w+\*$)|(^\w+$)/g
,您可以匹配abc
或abc*
或另一种方式:^\w+\*?$
\*?$
: 可选 * 最后。
^\w
: 开头的单词 1 或更多
const regex = /(^\w+\*$)|(^\w+$)/g;
const text = "abc"
console.log(text.match(regex))
【讨论】:
\w
不仅匹配 [a-zA-Z0-9]
还有什么匹配的?
至少 _
和其他字符取决于正则表达式引擎
很好,谢谢,我会更新我的答案,但另一个问题是,您所说的正则表达式引擎是什么意思?使用正确的语言?
是的,这就是我的意思,我相信我对某些遗留技术有过这种不愉快的经历,但通常\w
匹配[a-zA-Z_]
以上是关于用于字母数字通配符搜索的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章