在JavaScript中使用Regex过滤

发布于 2025-02-10 05:14:23 字数 742 浏览 3 评论 0原文

我目前正在从事一个项目,我想对我提供的输入进行过滤。目前,我的方法是:

var num = some.innerText;
var filter = input.value.toUpperCase().trim();

if (num.toUpperCase() == filter) {do something}

如果我的过滤器为11 我的数字有11A或11B之类的字母,当我过滤时,我想找到11个实例。我的想法是使用AN,或者我要么检查确切的匹配或匹配,在过滤器遵循任何字母字符之后。我想使用Regex,但这似乎不起作用。

我的正则方法

if (num.toUpperCase() == filter || num.toUpperCase() == filter + /[a-zA-Z]/) 
{do something} 

如果我这样做,则只有字母D和我不想写24或

if (num.toUpperCase() == filter || num.toUpperCase() == filter + "D") {do something}

我尝试的

if (num.toUpperCase().match(filter)  {do something} 

条件 ,但我不想找到11, 123,依此类推,当我将1输入过滤器时。

I am working currently on a project where I want to filter against an input I give. At the moment, my approach is:

var num = some.innerText;
var filter = input.value.toUpperCase().trim();

if (num.toUpperCase() == filter) {do something}

If my filter is 11 I will find only the num where the text is exactly 11, but sometimes
my numbers have letters like 11A or 11B and I would like to find all instances of 11 when I filter for that. My idea is to use an or that I either check for an exact match or a match, where after the filter follows any letter character. I wanted to use regex, but this doesn't seem to work.

My regex approach

if (num.toUpperCase() == filter || num.toUpperCase() == filter + /[a-zA-Z]/) 
{do something} 

If I do this it works, but only for the letter d and I dont want to write 24 or conditions

if (num.toUpperCase() == filter || num.toUpperCase() == filter + "D") {do something}

I tried

if (num.toUpperCase().match(filter)  {do something} 

, but I dont want to find 11, 123, and so on when I enter 1 into the filter.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜夜流光相皎洁 2025-02-17 05:14:23

这似乎是为了我的目的。现在,我可以将结果11d,11e,11b等获得,当将11输入到过滤器中时,如果我将其用作过滤器,也可以获得11D。

if(num.replace(/\ d+/,'')== filter || num == filter){做某事}>

This seems to work perfectly for my purpose. I can now get the results 11D, 11E, 11B and so on when entering 11 in to the filter and also 11D if I use that as the filter.

if (num.replace(/\D+/,'') == filter || num == filter) {do something}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文