【问题标题】:Regex acepting all chars(spaces, accentuated) except numbers and special characters正则表达式接受除数字和特殊字符之外的所有字符(空格、重音符号)
【发布时间】:2023-03-11 01:15:02
【问题描述】:

我必须验证我的应用程序上的一系列输入。用户可以输入任何字符,因为该应用支持多语言。

所以我只需要阻止数字和特殊字符,而不是强调字符...

你们能帮忙吗?

我的代码:

var textInputs,
AllowRegex  = [A-Za-z\u00c0-\u017e ];

        textInputs = document.querySelectorAll('input[type=text]');


        for(i = 0; i < textInputs.length; i++){
            if ( !AllowRegex.test(textInputs[i].value) ){
                alert(textInputs[i].value);
            } else {
                $obj.list[i] = textInputs[i].value;
            }
        }

        console.log($obj.list);

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    您可以使用 unicode 范围来包含您需要的所有特殊字符。

    \[A-Za-z\u00c0-\u017e ]\

    将涵盖其中的大部分,但可能不是全部。您可以在this website 上查找您需要的特定字符代码。正如您在上面的示例中所看到的,您只需在字符代码前加上 \u 来说明它使用的是 unicode。

    需要注意的是,这并不适用于所有正则表达式的实现,但适用于 JavaScript

    【讨论】:

    • 我用我的代码编辑了我的问题,但是您提供的正则表达式不起作用。触发参考错误“A 未定义”
    • 愚蠢的问题,但是您只是将其复制并粘贴为字符串。对于正则表达式,您需要用反斜杠将其括起来或将其作为字符串参数传递给 myRegex = new RegExp("myRegex")。我已经编辑了答案以包含前者,因为听起来你把它放在 JavaScript 中认为你的意思是一个变量
    • 有帮助,但不完全。如果我放一个?它阻塞。好的!但是如果我在后面插入一个空格,就会中断。
    猜你喜欢
    • 1970-01-01
    • 2014-03-16
    • 2011-10-10
    • 1970-01-01
    • 2017-12-11
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    相关资源
    最近更新 更多