0

现在我有(这是来自另一个已经完成的功能)

function validatelength() {
    var length = parseInt(document.getElementById("length").value, 10);
    var lengthError = document.getElementById("lengthError");
    if (isNaN(length) || length < 50 || length > 220) {
        lengthError.innerHTML = ">>Please enter your height<<";
        return false;
    } else {
        lengthError.innerHTML = "";
    }
    return true;
}

这是我的小代码,用于检查该字段是否真的包含一个人的长度。

现在对于文本字段(名称/前名/注释)我也想要这个到目前为止我有

function validatetext() {
    var text = parseInt(document.getElementById("text").value, 10);
    var textError = document.getElementById("textError");
    if (isNaN(text) || text < 50 || text > 220) {
        textError.innerHTML = ">>Please enter text only<<";
        return false;
    } else {
        textError.innerHTML = "";
    }
    return true;
}

谁能帮我完成这个功能?谢谢顺便说一句:我不能使用 jquery。(不被允许)

4

4 回答 4

3

使用正则表达式确保值中只出现字母。

就像是

/^[A-Za-z]*$/

应该管用。那个正则表达式说

“匹配 AZ 和 az 中的任何字母,从 0 到无限次,从行首到行尾”。

我假设您不想接受任何不是字母的东西。

于 2012-05-24T17:59:45.200 回答
1

假设这textError是您正在评估的字符串,并且应该是纯文本,我建议:

if (textError.match(/\d/)){
    // there's numbers in this string
}

JS Fiddle 概念验证

参考:

于 2012-05-24T17:59:57.467 回答
0
<SCRIPT LANGUAGE="JavaScript">

function checkIt(evt) {
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    if (!((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123))) {
       document.getElementById("lengthError").innerHTML = "This field accepts numbers only."
        return false
    }
    document.getElementById("lengthError").innerHTML = ""
    return true
}

</SCRIPT>

<INPUT TYPE="text" NAME="text" onKeyPress="return checkIt(event)">
于 2012-11-21T09:50:25.530 回答
0

看,这个实现可以帮助你一生,如果你是学生,它比正则表达式更容易解释。

//In this case I will define here the lower and upper case alphabet
//you can restrict this alphabet to match commas, spaces, or anything else, you just
//need to add them to the var.

var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzáéíóúñü"; 
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ";

//This function will check if an specific letter "c" exist in the previous defined
//alphabet
function isLetter (c) 
{ 
    return( ( uppercaseLetters.indexOf( c ) != -1 ) || 
            ( lowercaseLetters.indexOf( c ) != -1 ) ) 
} 


//this is the Main Method, basically their function is split the Word "s" in all chars
//and check if those chars are defined in 
//the initials vars lowercaseLetters and uppercaseLetters

function isAlphabetic (s) {
   var i; 


    for (i = 0; i < s.length; i+=1) 
    {    
        // Check that current character is letter. 
        var c = s.charAt(i); 

        if (!isLetter(c)) 
        return false; 
    } 
    return true; 
} 

现在,调用这个函数非常简单,你只需要从 Input 中捕获文本并调用 isAlphabetic(text) ,其中 text 是捕获的文本。

于 2012-05-24T18:25:24.287 回答