检查两个空格字符的数组元素

时间:2015-04-18 19:43:36

标签: javascript arrays regex

如何判断一个数组元素是否由三个单词组成(即如果它有两个空格字符)?它可能看起来像"abc def ghi"。我正在尝试在数组中搜索此表单的元素,并将删除此格式,而格式为"jkl xyz"或“”jkl“的其他格式将保留在数组中。

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

/^[^\s]+\s[^\s]+\s[^\s]+$/.test("abc def def") // true
/^[^\s]+\s[^\s]+\s[^\s]+$/.test("abc def ") // false

这意味着:

^ Start of string
[^\s]+ 1 or more none space characters
\s a space character
[^\s]+ 1 or more none space characters
\s a space character
[^\s]+ 1 or more none space characters
\s a space character
$ End of string

答案 1 :(得分:1)

您可以使用以下正则表达式的search函数:

str.search(/\b(\w+ \w+ \w+)\b/g);

阅读Demo

中的详细信息

答案 2 :(得分:1)

var myArray = ["abc def ghi","jkl xyz","gty slp","zxc vbn jkl"];
for (i=0;i<myArray.length;++i) {
  if (/\w+ \w+ \w+/.test(myArray[i])) {
    myArray.splice([i], 1);
  }
};
console.log(myArray);

输出:

["jkl xyz", "gty slp"]

CODEPEN DEMO


RegexExplanation:

\w+ \w+ \w+
-----------

Match a single character that is a “word character” (ASCII letter, digit, or underscore only) «\w+»
   Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
Match the character “ ” literally « »
Match a single character that is a “word character” (ASCII letter, digit, or underscore only) «\w+»
   Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
Match the character “ ” literally « »
Match a single character that is a “word character” (ASCII letter, digit, or underscore only) «\w+»
   Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»