javascript一次输入一个特定的字符

时间:2013-09-27 05:06:01

标签: javascript

我做了一个只能输入字母,@和(。)句号的函数。 如何设置我只能输入一次“@”符号,之后会自动添加“email.com”。例如我输入我的电子邮件,如“stackoverflow”,在我点击“@”后,它会自动添加“email.com”,而“@”只能输入一次..

这是我的代码

function fnEmailAlpha(e)
{
    var key;
    if(window.event)
       key = window.event.keyCode;     //IE
    else
       key = e.which;                  //Firefox
    if ((key>96 && key<123) || (key>64 && key<90) || key==46 || key == 64 || key == 95)
    {
       return true;
    }
    else
    {
       return false;
    }
 }

3 个答案:

答案 0 :(得分:1)

如果您要验证电子邮件ID,我建议您使用regex

你能做的是:

var reg=/^[a-zA-Z]+[\@]{1}[a-zA-Z]+[\.]{1}[a-zA-Z]+$/ig;
if(document.getElementById('email').value.match(reg)!=null)
{
   alert('Match!');
}

答案 1 :(得分:1)

试试这个:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script type="text/javascript">

        function validate(textbox) {
            //Handle Keycodes to return without action in case of arrow keys, backspace etc.
            var email = 'email.com';
            var val = textbox.value;
            var ind = textbox.value.indexOf('@');
            if (ind > -1)
                textbox.value = val.substring(0, ind + 1) + email;
        }
    </script>
</head>
<body>
    <form id="frm" name="frm">
        <input type="text" id="txtInput" name="txtInput" onkeyup ="validate(this)" />
    </form>
</body>
</html>

答案 2 :(得分:0)

if you need JavaScript solution

function validateForm()
{
var x=document.forms["myForm"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
  alert("Not a valid e-mail address");
  return false;
  }
}

或者如果您使用的是HTML5

 E-mail: <input type="email" name="email" autocomplete="off">