回答
,您可以尝试这样的:
$string = "this has way more than 5 words so we want to deny it ";
//edit: make sure only one space separates words if we want to get really robust:
//(found this regex through a search and havent tested it)
$string = preg_replace("/\\s+/", " ", $string);
//trim off beginning and end spaces;
$string = trim($string);
//get an array of the words
$wordArray = explode(" ", $string);
//get the word count
$wordCount = sizeof($wordArray);
//see if its too big
if($wordCount > 5) echo "Please make a shorter string";
应该工作:-)
你必须做两次,使用在客户端的JavaScript一次,然后使用PHP的服务器端。
你可以指望的空格数...
$wordCount = substr_count($input, ' ');
这不是['count_chars'](http://php.net/manual/en/function。count-chars.php),这个例子完全被破坏了。你甚至不会将字符串传递给函数。 – meagar 2010-10-20 02:42:42
根据微薄的评论编辑更正。 – 2010-10-20 02:56:28
如果$输入你的输入字符串,
$wordArray = explode(' ', $input);
if (count($wordArray) > 5)
//do something; too many words
虽然我真的不知道为什么你会想这样做用php输入验证。如果您只是使用javascript,则可以在表单提交之前让用户有机会更正输入内容。
使用PHP做输入验证是绝对必要的。 JavaScript可以并将在程序生命周期的正常过程中绕过。 – meagar 2010-10-20 02:33:12
它应该一起完成。 – 2010-10-20 02:58:44
如果你这样做;
substr_count($_POST['your text box'], ' ');
它限制到4
在PHP中,使用分割功能通过space.So你把它分解会得到词语的数组。然后检查数组的长度。
$mytextboxcontent=$_GET["txtContent"];
$words = explode(" ", $mytextboxcontent);
$numberOfWords=count($words);
if($numberOfWords>5)
{
echo "Only 5 words allowed";
}
else
{
//do whatever you want....
}
我没有测试this.Hope这个工程。我现在没有在我的机器上设置PHP环境。
除了()或substr_count(),为什么不直接使用PHP的内置函数计算字符串中的单词的数量。我知道这个功能名称并不特别直观,但:
$wordCount = str_word_count($string);
将是我的建议。
注意,在使用多字节字符集时,这是不一定很有效。在这种情况下,是这样的:
define("WORD_COUNT_MASK", "/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u");
function str_word_count_utf8($str)
{
return preg_match_all(WORD_COUNT_MASK, $str, $matches);
}
建议的str_word_count()
手册页
我想你想先用javascript做到这一点,只允许用户插入5个字(后与验证它PHP,以避免不良意图)
在JS,你需要为你键入它们计数字符,并保持你写的字计数(通过增加计数器每个空格)
看看这个代码: http://javascript.internet.com/forms/limit-characters-and-words-entered.html
- 1. 限制HTML输入只允许粘贴
- 2. 如何限制输入文本框允许只有0和1
- 3. 允许用户只输入文本?
- 4. 限制在文本框中允许的字符(输入金额)
- 5. 文本输入只允许在angularjs整数输入
- 6. PHP只允许@,_, - 和。从输入
- 7. 如何限制输入栏只允许*和0-9?
- 8. 只允许输入字母
- 9. 只允许数字输入
- 10. UITextField只允许英文字母输入
- 11. 只允许在文本框中输入数字
- 12. 只允许在WPF文本框中输入数字
- 13. PHP - 变量,只允许文本
- 14. 如何只允许文本输入的数字,但允许JavaScript的命令?
- 15. 只允许带正文的文本输入掩码
- 16. 角度限制不允许在文本字段中输入空格
- 17. 由PHP限制文本框输入值
- 18. HTML/PHP允许输入文件允许导航上传
- 19. 输入框,允许富文本功能
- 20. 如何允许输入多行文本?
- 21. AngularJS问题只允许将数字输入到文本框中
- 22. 允许文本字段只输入数字[Java]
- 23. 只允许范围内的数字输入到文本框
- 24. 访问输入文本框,只有选择启用允许searchs
- 25. 两个只有一个输入文本提交允许
- 26. 输入文本只允许3特定的字符
- 27. 只允许文本输入字段中的特定域
- 28. AngularJs输入文本框只允许大于零的值
- 29. 允许空文本框,但不允许输入无效
- 30. 输入文本框字段只允许字符不允许数字,但允许空间?
你或许应该测试字符串的长度和空格数量像布莱恩展示了。如果你不测试总长度oneCanWriteAVeryLongTextThatCountsOnlyAsOneWordAndThatsProbablyNotWhatYouWant。 – some 2010-10-20 02:34:49