【问题标题】:Javascript validation to allow maximum of 3 commasJavascript 验证最多允许 3 个逗号
【发布时间】:2012-01-28 07:05:10
【问题描述】:

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

123,456,789,0000

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

我想要实现的是只允许用户输入 4 个逗号分隔的标签,从而确保用户不会用 100 个标签淹没文章

【问题讨论】:

标签: javascript regex validation


【解决方案1】:
var txt = '123,456,789,0000';
if( /^([^,]*,){0,3}[^,]*$/.test( txt ) ){
    // good
}else{
    // bad
}

如果您想确保一行中没有两个逗号,请将* 更改为+,例如:12,,345

【讨论】:

  • thanx alot.. 它真的帮了我很多。
  • 这个验证工作得很好,但我有一个疑问,我想确保用户不能在输入框中输入超过 3 个逗号,即如果用户输入了 3 个逗号,用户将甚至无法输入第 4 个逗号。我希望,我说清楚了。
  • 这样做。匹配“任何非逗号后跟逗号”3 次。唯一允许逗号的地方是{0,3},匹配不超过 3 次
【解决方案2】:

如果您可以控制服务器端,我建议您在那里进行验证。

因为如果您尝试使用 java 脚本在客户端上进行验证,可以通过完全关闭 java 脚本或使用 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 事件,您可以将其绑定到提交按钮上的单击事件或其他内容,这完全取决于您的需要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    相关资源
    最近更新 更多