在自动保存输入中仅接受希腊字母

时间:2017-07-13 06:02:32

标签: javascript regex

我希望我的文本框只接受希腊字母。我使用此代码但不起作用。

JS:

<script language="javascript">
     document.logOn.onsubmit = validate;
     function validate() { 
         var name = document.logOn.pw.value;
         if(!name = " [A-ZA-zΑ-Ωα-ωίϊΐόάέύϋΰήώ]") {
             alert("Δεν επιτρεπονται λατινικη χαρακτηρες!");
             return false;
         }
         return true;
     }
<script>

在HTML中我使用onkeypress = validate()

6 个答案:

答案 0 :(得分:0)

此问题已被few times提出。

我不是希腊字母表的专家,但这样的事情似乎有效:

(/^[Α-Ωα-ωίϊΐόάέύϋΰήώ]+$/).test('ιτρε'); // true
(/^[Α-Ωα-ωίϊΐόάέύϋΰήώ]+$/).test('ιτρεkalimera'); // false

所以,在你的条件下:

if ( (/^[Α-Ωα-ωίϊΐόάέύϋΰήώ]+$/).test(name) ) {
   // you are speaking Greek to me
}

答案 1 :(得分:0)

您的代码不使用正则表达式。 !name = " [A-ZA-zΑ-Ωα-ωίϊΐόάέύϋΰήώ]"的意思是name字面上必须是[A-ZA-zΑ-Ωα-ωίϊΐόάέύϋΰήώ]

将其转换为正则表达式if (!name.test(/ [A-ZA-zΑ-Ωα-ωίϊΐόάέύϋΰήώ]+/)).test返回true / false

您的正则表达式将匹配{space}{any letter fro A to Z or from A to z or form A to Ω or α to ω or any of ίϊΐόάέύϋΰήώ}

答案 2 :(得分:0)

您必须使用string.match(regexp)进行正则表达式匹配。另外,我认为正则表达式应该是/^[A-ZA-zΑ-Ωα-ωίϊΐόάέύϋΰήώ]+$/

答案 3 :(得分:0)

试试这个。

<script type='text/javascript'>
 function validate()
{
    var name=document.getElementById('logOn').pw.value;
    if(!(new RegExp("[Α-Ωα-ωίϊΐόάέύϋΰήώ]").test(name)))
    {
        alert("Δεν επιτρεπονται λατινικη χαρακτηρες!");
        return false;
    }


    return true;

}
    window.onload = function() {   document.getElementById('logOn').onsubmit = validate; };

</script>

如果文本中包含的字母不是RegEx中的字母,则会发出警告。

答案 4 :(得分:0)

我相信问题就在这里

    document.logOn.onsubmit = validate;
     var name = document.logOn.pw.value;

也许我需要使用别的东西。我想这适用于提交输入。在我的情况下,我有一个纯文本,当我点击进入时出现一个警报,提到我的正确输入。接受任何有用的建议

答案 5 :(得分:0)

现有的主要问题是警报出现但接受的错误条目。 我想我的jacascript是正确的,问题出现在我的HTML代码中。我使用onclick ='return validate()'