【问题标题】:Regular expression for detecting first name and/or last name用于检测名字和/或姓氏的正则表达式
【发布时间】:2016-02-04 09:02:11
【问题描述】:

请帮我在这样的文本输入字段中建立一个模式,

<input name="BusinessOwner" type="text" id="BusinessOwner" pattern="?">

但规则是此输入字段只允许英文小写字母和/或大写字母(包括/排除空格),并且不允许数字强>。所以按照规则,

Adam Smith => valid
adam => valid
AB CD => valid
abcd12 => Invalid
abcd 12 => Invalid

请帮我建立模式。

【问题讨论】:

    标签: html design-patterns text input


    【解决方案1】:

    我推荐你使用这个模式:

    ^([A-Za-z]+[,.]?[ ]?|[A-Za-z]+['-]?)+$
    

    决赛:

    <input name="BusinessOwner" type="text" id="BusinessOwner" pattern="^([A-Za-z]+[,.]?[ ]?|[A-Za-z]+['-]?)+$">
    

    希望这会有所帮助。

    【讨论】:

    • 如何添加您给定模式字符长度小于 25 个字符的字符长度?
    【解决方案2】:

    对不起,我只知道 php 的答案

    $str =$_POST['BusinessOwner'];
    if (preg_match('#[0-9]#',$str))
      {
      echo 'number not allowed';
      }
    

    【讨论】:

      【解决方案3】:

      使用keyCode 限制输入..它不允许您输入数字..这是您可以根据您的条件修改的基本逻辑

      jQuery.fn.forceNumeric = function() {
      
        return this.each(function() {
          $(this).keydown(function(e) {
            var key = e.which || e.keyCode;
      
            if (!e.shiftKey && !e.altKey && !e.ctrlKey &&   key > 64 && key <= 123 || (key==32 || key ==8)
      )
              return true;
      
            return false;
          });
        });
      }
      $(document).ready(function() {
        $(".numberinput").forceNumeric();
      });
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <input type="text" name="txtNumber1" id="txtNumber1" value="" class="numberinput" />

      仅供参考http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

      更新

      $(function() {
      
          $("#field").bind("keyup", function(event) {
              var regex = /^[a-zA-Z\s]+$/;
              if (regex.test($("#field").val())) {
                  $('.validation').html('valid');
              } else {
                  $('.validation').html("not valid");
              }
          });
      });
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <input type="text" id="field" />
      
      <div class="validation"></div>
      或者
      <input name="lorem" onkeyup="this.value=this.value.replace(/[^a-z]/g,'');">
      

      我认为您将需要 jquery 或 javascript 的正则表达式..

      【讨论】:

      • 只有我需要模式(正则表达式)而不是 javascript 或 jQuery 代码段。你能帮帮我吗?
      【解决方案4】:

      比接受的答案更简单的正则表达式。

      ^[a-zA-Z\s]+$ - 允许 A-Z、a-z 和空格中的任何字符
      ^[a-zA-Z\s]{3,20}$ - 允许 A-Z、a-z 和空格中的任何字符,最小和最大长度分别为 3 和 20。
      ^([a-zA-Z]+\s)*[a-zA-Z]+$ - 允许 A-Z、a-z 中的任何字符,并且单词之间只能有一个空格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-10
        相关资源
        最近更新 更多