我需要接受所有字母和空格,单引号和破折号。
我有这个脚本:
$('.firstName').bind('keyup blur', function() {
var node = $(this);
node.val(node.val().replace(/[^a-z\s]/gi, ''));
});
仅接受字母和空格。现在我还需要添加单引号和破折号。
答案 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' />
这将取代不是字母,空格,短划线和单引号的所有内容。