Javascript正则表达式字符集限制相关查询

时间:2016-04-12 09:47:58

标签: javascript regex

我正在使用下面提到的JavaScript RegEx:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*([-_.])).+$

这只接受至少包含1:大写字母,小写字母,数字和&的文本。来自。-_。

的特殊符号

现在假设我提供User-123作为用户ID,确认上述RegEx&我使用屏幕键盘输入芬兰语中的字符,结果为User-123Ã

RegEx正在履行,我的JavaScript代码接受了该文本,但我希望它只接受英文字母数字输入,而不是其他任何内容。

我应该如何增强此RegEx呢?

2 个答案:

答案 0 :(得分:1)

这个字符串“User-123”包含Unicode“Ô而不是字母,所以如何识别js代码,

[Code]  [Glyph] [Decimal]   [HTML]      Description                         [#]
U+00C3  Ã       Ã      Ã    Latin Capital letter A with tilde   0131

也可以尝试此链接, How to find whether a particular string has unicode characters

答案 1 :(得分:1)

我不确定这会解决问题,但在大多数情况下,如果您想将输入本身限制为某些字符,那么消费模式应仅匹配那些你允许的字符。超前限制只需要或禁止某些字符在某些位置出现一定次数,但在消费部分中匹配的内容至关重要。

.+$允许所有字母。将其替换为[\w.-]+$\w = [a-zA-Z0-9_]),而不是限制在前瞻中所需的字符。