Javascript验证允许最多3个逗号

时间:2012-01-28 07:05:10

标签: javascript regex validation

我想要一个Javascript验证,允许文本字段用户中最多3个逗号以格式输入数字或文本

123,456,789,0000

意味着允许使用3个逗号(,),逗号之间可以有任意数量的数字/字母。用户可以选择仅输入2个逗号,即3个值,但允许的最大逗号数为3 例如 a,bb,ddddd,eeeee(4标签) a,cc,bbbbb(3个标签)

我想要达到的目的是允许用户只输入4个逗号分隔的标签,从而确保用户不能使用100个标签来填充文章

2 个答案:

答案 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事件,您可以将其绑定到提交按钮上的单击事件或其他内容,这一切都取决于您的需求。