【问题标题】:Regular expression to allow just single blank space after a character or word正则表达式只允许字符或单词后的单个空格
【发布时间】:2013-08-05 18:23:16
【问题描述】:

这是我到目前为止所做的,

$('.name').keyup(function () {
    var $th = $(this);
    $th.val($th.val().replace(/[^a-zA-Z' ]+( [A-Za-z' ]+)*$/g, function (str) {
        return '';
    }));
});

上面的表达式允许我输入 A-Z 和 ' 和空格。但我只想要一个字符或单词后的一个空格。

Ex. Hello World is ok
but Hello  World should not be accepted.

JSFIDDLE

【问题讨论】:

    标签: jquery regex


    【解决方案1】:

    简单的方法可能会更好。只需将重复的空格替换为单个空格即可:

    .replace(/\s+/, ' ')
    

    【讨论】:

      【解决方案2】:

      或者,您可以简单地替换重复的空格:

      str.replace(/[ ]{2,}/, ' ');
      

      【讨论】:

        【解决方案3】:

        试试这个:

        $('.name').keyup(function() {
            var $th = $(this);
            $th.val($th.val().replace(/(\s{2,})|[^a-zA-Z']/g, ' '));
            $th.val($th.val().replace(/^\s*/, ''));
            });
        

        Fiddle

        【讨论】:

        • 我仍然可以添加多个空格。
        • 对不起,是我的错误,我粘贴了错误的代码,请重试
        • 当我输入像 ,./] 这样的字符时,开头有空格...尝试输入 ./]\ 你会发现开头有 1 个空格...
        • 你在那里..我的问题可以解决吗!
        • 是的,它很完美,其他的都还可以,只是想知道如何在开始时删除空间..
        【解决方案4】:

        在您最里面的代码部分,尝试将“replace(/[^a-zA-Z' ]+( [A-Za-z' ]+)”替换为“replace(/[^a-zA-Z ' ]+( [A-Za-z']+)"

        我从这篇文章中得到了这个提示:Regular expression to allow single space after character or word 所以你可能也想读一下。

        【讨论】:

          【解决方案5】:

          你只需要去掉括号末尾的空格。

          [^a-zA-Z']+( [A-Za-z']+)
          

          虽然我会考虑将空格放在第一个单词的末尾,以便您可以实时输入。

          $('.name').keyup(function() {
                  var $th = $(this);
                  $th.val( $th.val().replace(/([^a-zA-Z'] )+([A-Za-z']+)*$/g, function(str) {  return ''; } ) );
              });
          

          【讨论】:

          • 用户不应该能够添加 ,./][ 这些字符以及...在输入 2 个空格时,两个空格都被删除了..
          • 我怎样才能只删除用户输入的额外空间。输入也仅限于 a-z 和 '
          猜你喜欢
          • 1970-01-01
          • 2020-05-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-06
          • 1970-01-01
          相关资源
          最近更新 更多