使用正则表达式限制响应中的单词数

时间:2009-02-17 16:52:10

标签: regex

是否有人使用正则表达式来限制响应中的单词数量?例如,我想在jQuery验证中使用它,所以我可以限制textbox / textarea说250个单词。这些框将是纯文本。

我做了一些谷歌搜索,但我发现的一切都不是很好。他们主要以做\ b \ w + \ b为中心,但我无法正常工作。

5 个答案:

答案 0 :(得分:8)

你可以尝试一下:

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

这将限制在多行上250个单词。

我担心艾伦的最初主张:

/^\w+(?:\s+\w+){0,249}$/

可能是catastrophic backtracking

的情况
  

在嵌套重复运算符时,请确保只有一种方法可以匹配相同的匹配

答案 1 :(得分:3)

如何用正则表达式分割文本(比如“\ s +”),然后计算结果列表的长度?这会更容易阅读。

答案 2 :(得分:1)

这对我来说效果很好,例如,如果你想要一个6字的限制:

^(?:\w+\W+){0,5}(?:\w+)$

答案 3 :(得分:0)

这是我用于字数统计验证的正则表达式。

(\w*\W*){0,250}

答案 4 :(得分:0)

这对我有用:

^\W*(\w+(\W+|$)){1,250}$