日期:2014-05-16  浏览次数:20465 次

怎样用javascript来统计一个字符串里单词的个数啊?
比如说“How   are   you”统计结果为3,我是菜鸟,不懂正则表达式什么的。

------解决方案--------------------
正则表达式
------解决方案--------------------
Pattern.compile( "[how are you]{1} ");

------解决方案--------------------
空格的个数+1
------解决方案--------------------
newReg( "//b[A-Za-z0-9]//b ", "gim ");
------解决方案--------------------
空格加1的实现

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN ">
<html>
<head>
<title> New Document </title>
<meta name= "Generator " content= "EditPlus ">
<meta name= "Author " content= " ">
<meta name= "Keywords " content= " ">
<meta name= "Description " content= " ">
</head>

<body>
<script language= "JavaScript ">
<!--
str = "How are you ";
var num = 1;
for(i=0;i <str.length;i++)
{
if(str[i]== " ")
{
num++;
}
}

alert(num+1);
//-->
</script>
</body>
</html>

------解决方案--------------------
空格加1的话先要把多个空格,前后空格和换行符等替换成1个空格
------解决方案--------------------
<script>
var str = "aa bb cc dd ";
alert(str.match(/\b\w+\b/gm).length);
</script>

------解决方案--------------------
正则吧
不然这么多单词分割符号会累死的
------解决方案--------------------
直接
var str = "aa bb cc dd ";
alert(str.match(/[a-zA-Z]+/).length);

另外\w包括 中文 和 数字 最好不要直接用\w
而且根本不用\b来区分前后


------解决方案--------------------
<script>
var str= "aa bb c32 dd ff 456 ";
var r = /\b[a-zA-Z]+\b/g;
alert(str.match(r).length);
</script>