单词计数正则表达式只允许字母数字和最大长度

时间:2012-07-22 16:49:09

标签: regex

我整个上午花了gSkinner试图改变这个正则表达式。它正确地只允许15个单词,但如何进一步限制输入到字母数字,并且没有有效单词长度超过25个字符?

我理解[a-z0-9],但大概使用单词边界似乎让我感到困惑,因为无论我做什么我都会打破它。

^\W*(?:\w+\b\W*){1,15}$

用于javascript / php。

1 个答案:

答案 0 :(得分:1)

试试这个正则表达式:^((\w{1,25}))((\W\w{1,25}){1,14}|)

第一个单词前面不会有空格(\ w {1,25}),这些东西检查一下。现在我想要一个单词(\ W \ w {1,25})的空白区域,但我想要1到14次(\ W \ w {1,25}){1,14}。好吧但是如果输入只有1个单词,那么模式的第二部分就不会起作用,所以不是一个单词所包含的空格,我什么都没有,所以我添加了|。 ((\ W \ W {1,25}){1,14} |)


修改

如果你放了这个模式有一个小故障 - 而且这些字符让我更新到这个:
^([^ ]{1,25})(([ ]{1,}([^ ]{1,25}|)){1,14}|)