我想要一个Javascript验证,允许文本字段用户中最多3个逗号以格式输入数字或文本
123,456,789,0000
意味着允许使用3个逗号(,),逗号之间可以有任意数量的数字/字母。用户可以选择仅输入2个逗号,即3个值,但允许的最大逗号数为3 例如 a,bb,ddddd,eeeee(4标签) a,cc,bbbbb(3个标签)
我想要达到的目的是允许用户只输入4个逗号分隔的标签,从而确保用户不能使用100个标签来填充文章
答案 0 :(得分:5)
var txt = '123,456,789,0000';
if( /^([^,]*,){0,3}[^,]*$/.test( txt ) ){
// good
}else{
// bad
}
如果您想确保一行中没有逗号,请将*
更改为+
,例如:12,,345
答案 1 :(得分:0)
如果您对服务器端有控制权,我建议在那里进行验证。
因为如果你尝试使用java脚本在客户端上进行验证,可以通过一起关闭java Script或通过操纵或手动执行请求使用Firefox的FireBug扩展来绕过它,完全绕过你的java脚本验证
但如果您真的想在javascript中进行某种验证,可以执行以下操作:
给定此输入字段<input id="txtInput" type="text" />
你可以绑定一个keyup事件(注意那些试图从剪贴板粘贴的人,如果通过上下文菜单这样做,keyup将无法捕获它)
$('#txtInput').keyup(function(){
//This splits up the string value of the text box into an array
//wherever a coma appears
var tags = $(this).val().split(',');
//These would be your tags, without the coma, count them to find out how many
//the user tried to enter.
if (tags.length > 4)
alert('there is more than 4 tags');
});
当然这只是一个例子,但你可以根据自己的需要调整这个想法。您不必将此绑定到keyup
事件,您可以将其绑定到提交按钮上的单击事件或其他内容,这一切都取决于您的需求。