如何检查字符串是否仅包含两个单词

时间:2019-06-27 19:36:53

标签: javascript

我想制作一个if语句:

if(playerMessage == specificallyOnlyTwoWords) {
  // do something
}

这意味着,例如,当“ playerMessage”的值为“ Fruit Ninja”时,它将在if语句中执行代码,但是如果变量的值为“ Great Fruit Ninja”,则在如果语句将不会运行。

两个单词是一个用空格或分隔的单词

如果可能,请注意标点符号将不胜感激。 “标点符号”是不是字母的任何字符。例如:A是字母,;是标点符号

我正在使用JavaScript。

3 个答案:

答案 0 :(得分:2)

这是一种简单的方法。计算空格的全局匹配数,如果只有一个,则返回true。

var strings = ['two words','one more word', 'a bunch of words']
strings.filter(str => {
 console.log(str.match(/\s/g).length === 1)
})

答案 1 :(得分:2)

您可以使用non-word characters\W上进行拆分,然后可以测试拆分后的字符串的长度:

let strs = ['Hello, Johnny', 'Hello,Johnny', 'Hello Johnny', 'Hello \n World', 'Hello   World']

strs.forEach(str => console.log(str, str.split(/\W/).length === 2))

console.log('-- Trim Witespace ---')

// Replace extra whitespace
strs.forEach(str => console.log(str, str.replace(/\s\s+/g, ' ').split(/\W/).length === 2))

答案 2 :(得分:1)

if (playerMessage.split(/\W+/).length === 2) {
   // do something
}

它将忽略不是字母的所有内容。