为了账号安全,请及时绑定邮箱和手机立即绑定

用于验证字数少于 100 的正则表达式

用于验证字数少于 100 的正则表达式

一只萌萌小番薯 2021-11-18 20:09:31
我需要编写一个可以验证 textarea 的正则表达式,以便用户不能在多行中输入超过 100 个单词。我试过这样的事情^(?:\b\w+\b[\s\r\n]*){0,100}$但是只要我输入一些特殊字符,如点 (.) 或逗号 (,),表达式就会失败。
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

您可以使用

^\s*(?:\S+(?:\s+\S+){0,99}\s*)?$

如果必须存在至少一个词,请删除外部(?:/)?可选的非捕获分组结构:

^\s*\S+(?:\s+\S+){0,99}\s*$

细节:

  • ^ - 字符串的开始

  • \s* - 0 个或多个空格

  • \S+ - 1 个或多个非空格

  • (?:\s+\S+){0,99} - 0 到 99 次重复 1 个或多个空格,然后是 1 个或多个非空格

  • \s* - 0 个或多个空格

  • $ - 字符串的结尾。

要仅计算由单词字符组成的单词,请将每个替换\s\W并且将每个替换\S\w


查看完整回答
反对 回复 2021-11-18
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

[编辑:正如评论中提到的,这个正则表达式有局限性。请使用已接受的答案中提供的解决方案。]

尝试这个:^(?:[\b\w\b;:,\.]+[\s\r\n]*){0,100}$

如果需要,请在您看到的位置添加其他可能的标点符号和非字母数字字符;:,\.

编辑:当我用较少的单词进行测试时,在正则表达式中留下了 4 个。替换为问题中提到的 100 。


查看完整回答
反对 回复 2021-11-18
  • 2 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信