【问题标题】:Regex for Alpha Numeric and some special characters字母数字和一些特殊字符的正则表达式
【发布时间】:2020-09-21 18:05:58
【问题描述】:

我有一个输入控制器,我只想允许 Alpha 数字值和 -、@ 和 # 特殊字符,我使用以下输入过滤器 input-filter='[A-Za-z0-9 \-_@#]{1,20}',它允许但 Alpha数值正确,但不允许特殊字符,-,@ 和 #,我做错了什么,有人可以帮助我 - 非常感谢。

好的,我已经为 onKeyUp 编写了一个函数,如下所示,但是我想要删除那些不在上面列表中的 3 中的特殊字符 -、@、#。 你能修改一下功能吗?我怎样才能自动删除它们?或者建议我做点什么。提前感谢我的朋友, JS函数:

forTest(e) {
                e = 'some test';
            },

Ember 控件(html 输入标签控件):

                            {{#tag-input
                            tags=tags
                            addTag=(action 'addTag')
                            onKeyUp=(action 'forTest')
                            removeTagAtIndex=(action 'removeTagAtIndex')
                            as |tag|
                            }}
                            {{tag}}
                            {{/tag-input}}

【问题讨论】:

  • 它确实有效regex101.com/r/tgME2R/1。
  • 在您的正则表达式 ^<regex>$ 周围添加锚点可能是有利的。请发布您的源代码。

标签: javascript jquery regex ember.js


【解决方案1】:

您需要转义一些特殊字符。你写了 -_,它匹配从''(空格)到'_'范围内的任何字符。这是转义版本: [A-Za-z0-9\ \-_@#]{1,20}。一个提示:您始终可以使用 this 工具“调试”您的 RegExes

【讨论】:

  • 他似乎已经转义了破折号[A-Za-z0-9 \-_@#]{1,20}如果是非html、JS字符串,可能需要转义。
  • 不,它没有帮助,仍然不允许我输入我想要的特殊字符,例如 -、@、#
  • 其实我发现问题不在于输入过滤器,而在于掩码值,mask='******************* *',如何更改此掩码值以接受具有这 3 个特殊字符的字母数字?
猜你喜欢
  • 2013-04-04
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多