【发布时间】:2016-04-12 09:47:57
【问题描述】:
我正在使用下面提到的 JavaScript RegEx:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*([-_.])).+$
这仅接受具有至少 1 个的文本:大写字母、小写字母、数字和来自 .-_ 的特殊符号。
现在假设我提供 User-123 作为用户 ID,这与上述 RegEx 确认并使用屏幕键盘输入芬兰语字符,结果为 User-123Ã。
正则表达式已完成,文本被我的 JavaScript 代码接受,但我希望它只接受英文字母数字输入,不接受其他任何内容。
我应该如何增强这个 RegEx 来做到这一点?
【问题讨论】:
-
检查
.+$- 它允许所有字母。您可以改用[\w.-]+$来限制您在前瞻中需要的字符。 -
也许有这样的正则表达式会更清楚:
[^A-Za-z\d_.-],如果匹配则抛出错误。 -
@WiktorStribizew,请在答案部分开始写答案。这不是我第一次浪费 2 多分钟阅读您已经在 cmets 中回答的问题。
-
ndn - 请发表您认为正确的内容 - 我不知道真正的答案是什么。
-
我不认为仅仅发布“使用
my_cool_code_or_regex”是一个有效的答案。这就是为什么我没有发表我的评论。写一个答案需要时间,而且我并不总是有很多时间。
标签: javascript regex