验证文本字段,仅允许字母,' - '和'。'

时间:2014-04-03 13:04:38

标签: javascript

我试图让我的文本字段验证输入的文本。目前我告诉它只允许字母a-z和 - 和。

目前的设置是,如果它无效,它会产生一个十字架,如果它有效则会产生一个勾号。

目前虽然它没有检查输入文本区域的最小和最大字符但我希望它能够这样做,所以有人可以告诉我该怎么做吗?

到目前为止,我有这个脚本,但我不知道怎么去检查字段中的最小和最大字符,比如我希望它的最小值为5,最大值为60。

我遇到的另一个问题是,在验证工作的那一刻,如果字母为az和 - ,则会产生一个勾号,如果有人自己输入@或/,那么它会产生一个十字架,但如果有人输入'你好@'然后它也验证它并调出勾号,但不应该允许@字符。

脚本:

<script>
function validateCname(CnameField){
        var reg = /[A-Za-z\._-]$/;



        if (reg.test(CnameField.value) == false) 
        {
            document.getElementById("emailTick").style.display='none'; // Hide tick if validation Fails
            document.getElementById("emailCross").style.display='block';
            return false;
        }
        if (reg.test(CnameField.value) == true)
        document.getElementById("emailCross").style.display='none';
        document.getElementById("emailTick").style.display='block';
        return true;
}
</script>

HTML:

<input type="text" id="field_cname" name="cname" class="field_cname" onfocus="document.getElementById('field_cname').style.background='#ffffff';" onblur="validateCname(this);">
<div id="emailCross"></div><div id="emailTick"></div>

1 个答案:

答案 0 :(得分:1)

将正则表达式更改为:

var reg = /^[A-Za-z\._-]{5,60}$/;