标签个数与长度的验证
来源:互联网 发布:安卓远程录音源码 编辑:程序博客网 时间:2024/06/05 23:52
今天被测试提了一个有趣的BUG,需要对标签输入框内输入的标签做验证,要求如下:
1.标签用中文逗号(,),英文逗号(,)以及空格分割。
2.每个标签长度不能超过10
3.总标签个数不能超过5
于是我开动脑筋,写了以下一段代码
// 发表视频标签验证JS var text = ''; //创建一个空文本 $(document).on('input ','#video-desc',function(){ console.log('开始验证输入框') var txt = $('#video-desc').val();//获取输入框的值 txt.split(/,|,| /).forEach(function(v,i){//用,和,和空格分割并遍历 //text += v.substr(0,10); console.log(i); if(v.length > 10){//如果标签字数大于10,显示提示信息 $('.tip.fz-black-third').text("标签最大长度10个字符").css("color","#e4393a"); }else if(i>4){//如果标签数大于5,显示提示信息 $('.tip.fz-black-third').text("最多定义5个标签").css("color","#e4393a"); } else{//还原提示信息 $('.tip.fz-black-third').text("选填,建议3-5个标签,实体名词为主,现象级动词次之,避免形容词、语气词等;按空格、逗号分隔多个标签,回车保存").css("color","#999"); } }) })
拿来验证了一下输入框,确实能用,长度和标签数都能取到
不过还是有瑕疵,写好的标签改动时验证不了最大长度。
虽然实际中也没人先写后面的标签再写前面的,不过咱还是要想办法修补的
脑补了一遍代码逻辑,发现是遍历后面的验证会把前面的覆盖住,于是呼把代码改成下面这个样子
// 发表视频标签验证JS var text = ''; //创建一个空文本 var error1 = 0; var error2 = 0 $(document).on('input ','#video-desc',function(){ console.log('开始验证输入框') var txt = $('#video-desc').val();//获取输入框的值 txt.split(/,|,| /).forEach(function(v,i){//用,和,和空格分割并遍历 //text += v.substr(0,10); console.log(i); if(v.length > 10){//如果标签字数大于10,显示提示信息 error1 = 1 }else if(i>4){//如果标签数大于5,显示提示信息 error2 = 1 }else{ error2 = 0 } }) if(error1 == 0&&error2 == 0){ $('.tip.fz-black-third').text("选填,建议3-5个标签,实体名词为主,现象级动词次之,避免形容词、语气词等;按空格、逗号分隔多个标签,回车保存").css("color","#999"); }else if(error1 == 1){ $('.tip.fz-black-third').text("标签最大长度10个字符").css("color","#e4393a"); error1 = 0; }else if(error2 == 1){ $('.tip.fz-black-third').text("最多定义5个标签").css("color","#e4393a"); }else{ return; } })
其中用了2个error变量来存储错误信息,避免在遍历中被覆盖。虽然写的有点多,不过功能还是杠杠的。
好了,现在能完美实现这个验证功能了
2 0
- 标签个数与长度的验证
- perl数组的长度与元素个数
- perl数组的长度与元素个数
- perl数组的长度与元素个数
- 字符串长度与字节个数
- CSS的长度单位(em) 与em标签
- CSS的长度单位(em)与em标签
- 7.1 Javascript:表单与验证-长度验证
- 修改dede_tag标签的长度
- js验证字符的长度
- varchar(max) 长度的验证
- 动态追加标签,获取某标签下的标签个数
- VC中获得动态数组长度与数组元素个数
- 获取字符串长度与字符串个数 utf8 gb2312
- 求公共前缀长度与所选字符串个数的乘积的最大值 Trie树求最值 UVA 11488 Hyper Prefix Sets
- input标签的汉字长度限制
- 截取字符串长度的自定义标签
- c标签获取集合的长度
- ScrollView嵌套ListView的bug问题解决
- MySQL自定义函数用法详解-复合结构自定义变量/流程控制
- 分糖果
- Action获取表单提交数据
- 数组面向过程与面向对象的基本操作
- 标签个数与长度的验证
- Hadoop入门介绍
- SVN文件误删,再检出报红色X号
- Java 集合框架
- React 避免重渲染
- trait与policy模板技术
- Linux中服务器软件为什么需要编译安装
- java网络编程____zip操作工具类
- jenkins 配置备份