2013-02-22 95 views
-5

在jQuery中,是否有一种更简单的方法来检测字符串是否包含字数小于等于X的字?我即将编写一些Javascript,它会遍历字符串中的每个单词,检查每个单独的长度,但想要知道是否有函数或更简单的方法(可能在jQuery中),然后再浪费时间和线条。jQuery - 检测字符串中的特定长度单词?

这就是我要做的,必须有一个更简单的方法,可能是一个班轮?

var bad_words = 0; 
var search_str = $('#search_str').split(' '); 
$.each(search_str, function(index, chunk) { 
    if (chunk.length < 4) { 
     bad_words++; 
    } 
} 
if (badwords > 0) { 
    alert("Words with 3 or less characters found."); 
} 

我不找人做我的工作,我只是想知道,如果有可能,如果是这样,我应该在看。

+0

@ DanielA.White:我没有。这就是为什么我在这里问是否有可能?我很乐意做这项工作,我只是想知道从哪里开始看。其可能性为 – TheCarver 2013-02-22 01:18:05

+0

。你不需要jquery。 – 2013-02-22 01:19:05

+0

@PaparazzoKid:从哪里开始看?我不知道...... [规范](http://ecma-international.org/ecma-262/5.1/)?任何数量的[meta](https://developer.mozilla.org/en-US/docs/JavaScript)网站? – 2013-02-22 01:19:42

回答

6
if (str.match(/\b\w{1,3}\b/g)) { 
    // string has words with 3 chars or less 
} 
+0

+1 Niiii​​iice ...(OP应该至少有*尝试过*,但是这并不能带走这个解决方案的纯粹优雅。) – 2013-02-22 01:26:01

+0

+1不错,非常好。我只是开始练习REGEX的解决方案,并刚刚了解了'\ b' - 单词边界。 – iambriansreed 2013-02-22 01:31:57

+1

实际上,如果只是为了存在而进行测试,如果找不到,匹配会返回null,它甚至可以更短! – elclanrs 2013-02-22 01:33:21

3
/\b\w{1,3}\b/.test(str) 

只是返回truefalse,如你所愿。

+0

+1 @PaparazzoKid这是迄今为止最好的答案。回答你想要学习的第二个问题[正则表达式](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions)。 – iambriansreed 2013-02-22 01:36:06

+0

我认为你必须学习正则表达式,而不是我。但是,谢谢 – kbec 2013-02-22 11:48:49

+2

我同意这是为什么我添加了@ @ PaparazzoKid'这个地址给OP @PaparazzoKid的评论。你清楚地知道你的REGEX。 – iambriansreed 2013-02-22 13:20:28

相关问题