猿问

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

我需要编写一个可以验证 textarea 的正则表达式,以便用户不能在多行中输入超过 100 个单词。我试过这样的事情

^(?:\b\w+\b[\s\r\n]*){0,100}$

但是只要我输入一些特殊字符,如点 (.) 或逗号 (,),表达式就会失败。

一只萌萌小番薯
浏览 139回答 2
2回答

慕少森

您可以使用^\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。

饮歌长啸

[编辑:正如评论中提到的,这个正则表达式有局限性。请使用已接受的答案中提供的解决方案。]尝试这个:^(?:[\b\w\b;:,\.]+[\s\r\n]*){0,100}$如果需要,请在您看到的位置添加其他可能的标点符号和非字母数字字符;:,\.。编辑:当我用较少的单词进行测试时,在正则表达式中留下了 4 个。替换为问题中提到的 100 。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答