我正在使用下面提到的JavaScript RegEx:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*([-_.])).+$
这只接受至少包含1:大写字母,小写字母,数字和&的文本。来自。-_。
的特殊符号现在假设我提供User-123
作为用户ID,确认上述RegEx&我使用屏幕键盘输入芬兰语中的字符,结果为User-123Ã
。
RegEx正在履行,我的JavaScript代码接受了该文本,但我希望它只接受英文字母数字输入,而不是其他任何内容。
我应该如何增强此RegEx呢?
答案 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_]
),而不是限制在前瞻中所需的字符。