javaScript 正则表达式问题

beststone1 2018-07-27 02:08:22
有一个文本框,前端要对文本框内输入的内容进行校验 ,文本框内输入的内容叫关键词如:去学校,上课,回去,去公司,开会等
文本框内可以输入一个关键词,也可以输入多个关键词,如果输入了多个关键词,关键词之间就用逗号分隔。

文本框内校验的条件是:如果文本框 内输入了空格,回车,或输入的单个关键词的长度超过了50个字符就提示消息说不能输入被限制了的字符

校验条件正则写的是:不能输空格,回车,或输入的单个关键词的长度不能超过了50个字符
请问这个校验条件用正则表达式怎么写? 谢谢高手


...全文
185 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2018-07-27
  • 打赏
  • 举报
回复
引用 6 楼 qq_36688928 的回复:
2.字符串之间用逗号分隔( , )
3. 逗号分隔之后的每一个字符串(中英文)的长度不能超过了50个字符
这两条单独写一个正则表达式怎么写? 谢谢高手。

^([^,]{1,50}(,(?!$)|$))+$
beststone1 2018-07-27
  • 打赏
  • 举报
回复
2.字符串之间用逗号分隔( , )
3. 逗号分隔之后的每一个字符串(中英文)的长度不能超过了50个字符
这两条单独写一个正则表达式怎么写? 谢谢高手。
  • 打赏
  • 举报
回复

/^[^,\s]{1,50}(?:,[^,\s]{1,50})*$/
游北亮 2018-07-27
  • 打赏
  • 举报
回复
试了下有点问题,改用:

^([^\s]{1,50}(,|$))+$
游北亮 2018-07-27
  • 打赏
  • 举报
回复
首先告诉你一个概念, \s 是包括回车\r 和换行\n 的,你的需求正则大致如下:

var txt = "xxx";
var reg = /^([^\s]{1,50},?)+$/;
if(!reg.test(txt)){
alert('不合法');
}

beststone1 2018-07-27
  • 打赏
  • 举报
回复
哦,那你就其它的都不要看了,就看我这个面的内容:
正则表达式 :1. 不能是空格(正则:\s),回车(正则:\r),
2. 字符串之间用逗号分隔( , )
3. 逗号分隔之后的每一个字符串(中英文)的长度不能超过了50个字符
请教高手这个正则表式之怎么写? 谢谢

现在思路应该清晰了些吧。
丰云 2018-07-27
  • 打赏
  • 举报
回复
描述混乱。。。。
什么逗号分开什么多个关键词的。。。乱七八糟的,跟最后的校验规则有关系吗?
如果有关系,是什么关系?
该说清楚的没说,感觉说了一堆垃圾话,干扰思维。。。。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧