我让用户输入一些标签。这些标签应仅包含字符:
[a-z]
[A-Z]
[0-9]
-
如果存在任何其他字符,则应将其从字符串中删除。
这可能吗?最快的方法是什么?
答案 0 :(得分:7)
您可以为相关的keyup
元素分配input
事件处理程序,并使用以下代码过滤值:
$("input").keyup(function(){
var value = $(this).val().replace(/[^-a-zA-Z0-9]/g, "");
$(this).val(value)
})
$("input")
选择所有input
元素。 调整此选择器以满足您的愿望。keyup
事件。 $(this).val()
返回当前输入元素的值。[^-a-zA-Z0-9]
匹配任何无效字符(/[^-a-z0-9]/i
具有相同效果) /g
是全局标志,表示:匹配每次出现的RegExp。.replace(/.../g, "")
用空字符串替换所有无效字符(=删除所有无效字符)$(this).val(value)
将当前输入元素的值更改为有效字符串。答案 1 :(得分:4)
不需要jQuery:
str.replace(/[^a-z0-9\-]/ig,"");
将删除任何不是字母,数字或破折号的内容。
答案 2 :(得分:2)
一个简单的正则表达式替换:
userInputString.replace(/[^a-z0-9\-]/ig, "")