如何在文本框中允许所有字母/空格/单引号/破折号

时间:2017-09-22 11:19:32

标签: javascript jquery regex

我需要接受所有字母和空格,单引号和破折号。

我有这个脚本:

$('.firstName').bind('keyup blur', function() {
    var node = $(this);
    node.val(node.val().replace(/[^a-z\s]/gi, ''));
});

仅接受字母和空格。现在我还需要添加单引号和破折号。

3 个答案:

答案 0 :(得分:0)

正如上面提到的那样,正则表达式/[^a-z\s'-]/gi会完成这项工作,但我建议使用input事件代替其他keyup blur,因为它更有效率跟踪使用输入:

$('.firstName').on('input', function() {
  var node = $(this);

  node.val(node.val().replace(/[^a-z\s'-]/gi, ''));
});

注意: {@ 1}}方法已弃用,而是使用bind()

希望这有帮助。



on()

$('.firstName').on('input', function() {
  var node = $(this);

  node.val(node.val().replace(/[^a-z\s'-]/gi, ''));
});




答案 1 :(得分:0)

^[a-zA-Z][a-zA-Z '-]*$

这是一个以字母开头的正则表达式,可以包含空格,单引号和短划线符号。

答案 2 :(得分:-1)

这对你有用:

$('.firstName').bind('keyup blur', function() {
            var node = $(this);

            node.val(node.val().replace(/[^a-z\s'-]/gi, ''));

        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' class='firstName' />

这将取代不是字母,空格,短划线和单引号的所有内容。