正则表达式仅检查字母表

时间:2017-07-12 13:20:13

标签: javascript html regex forms validation

我正在尝试仅对字母表进行表单验证,但这个正则表达式似乎无法正常工作

 function check() {
      var reg="/^[a-zA-Z]*$/";
    var x = document.forms['frm'].name.value;
    var y=  document.forms['frm'].email.value;

    if( x === ""){
     alert('Name field cant be empty');
     $("#nameone").focus();
      return false;
    }
    else if (!reg.match(x)){
      alert('NAME must contain alphabets only');
      return false;
    }

    else if( y === ""){
     alert('Email  field cant be empty');
     $("#emailone").focus();
      return false;
    }



    else {
      return true;
    }
    }
  

这是我的表格,我添加了详细信息,输入字段

 <form class="reg_form" name='frm' method="post" onsubmit='return check();' >
     <div class="input-field col-md-4">
      <input type="text" placeholder="1. Name" name="name" id='nameone'/>
    </div>
    <div class="input-field col-md-4">
      <input type="text" placeholder="2. Email" name="email" id='emailone'  />
    </div>
    <div class="input-field col-md-4 ">
     <input type="text" placeholder="3. phone" name="phone" />
     </div>

</form>

3 个答案:

答案 0 :(得分:2)

在这种情况下,您的代码无法运行,因为您的正则表达式已设置为该行中的字符串:

&#13;
&#13;
 var reg="/^[a-zA-Z]*$/";
&#13;
&#13;
&#13;

正则表达式被设置为没有引号:

&#13;
&#13;
 var reg=/^[a-zA-Z]*$/;
&#13;
&#13;
&#13;

我建议您使用:

代替方法&#39;匹配&#39;

&#13;
&#13;
else if (!reg.test(x)){
&#13;
&#13;
&#13;

这更具有性能,并返回一个布尔值。

答案 1 :(得分:1)

而不是......

var reg = "/^[a-zA-Z]*$/"; // produces a **string**

你应该省略周围的引号:

var reg = /^[a-zA-Z]*$/;  // produces a **Regex object**

第二种使用javascript内联Regex语法,斜杠用作分隔符。

此外,您可以使用简单的.test()函数来检查字符串是否符合正则表达式。

演示:

var reg = /^[a-zA-Z]*$/;
console.log(reg.test("ABcd"));
console.log(reg.test("123"));

答案 2 :(得分:0)

你可以使用

string.match("^[a-zA-Z]+$$");

如果字符串只包含字母,则会生效,否则为