如何查找只包含两个单词的字符串(每个单词只能包含A-Z或a-z字符)?

时间:2017-10-02 15:08:47

标签: javascript regex

我有几个字符串,我只想显示包含两个单词的字符串。

每个单词只能包含A-Z或a-z

(下面的每个字符串都有一个新行)

"AIR CLEANING" <- true
"AIR CLN ASM C27w CLUTCH" <- false
"AIR COMPO. LUBRICATOR" <- false
"AIR COMP" <- true
"O-RING" <- false

4 个答案:

答案 0 :(得分:1)

您可以选择一个开始和结束符号,并使用一组用空格分隔所需的字符。

var array = ["AIR CLEANING", "AIR CLN ASM C27w CLUTCH", "AIR COMPO. LUBRICATOR", "AIR COMP", "O-RING"];

console.log(array.map(s => /^[A-Z]+\s+[A-Z]+$/i.test(s)));

答案 1 :(得分:1)

这个简单的任务可以通过简单地使用javascript在没有正则表达式的可变性的情况下完成。

&#13;
&#13;
let string = `AIR CLEANING
AIR CLN ASM C27w CLUTCH
AIR COMPO. LUBRICATOR
AIR COMP
O-RING`;

let splitSpace = string.split('\n');
let result = splitSpace.map(x => x.split(' ').length === 2 ? true : false);
console.log(result);
&#13;
&#13;
&#13;

答案 2 :(得分:1)

使用正则表达式非常简单:

&#13;
&#13;
var rx = /^\w+\s+\w+$/

console.log(rx.test("AIR CLEANING"))
console.log(rx.test("AIR CLN ASM C27w CLUTCH"))
console.log(rx.test("AIR COMPO. LUBRICATOR"))
console.log(rx.test("AIR COMP"))
console.log(rx.test("O-RING"))
&#13;
&#13;
&#13;

这会考虑类似于&#39; Hello3&#39;一个字。所以这一行:&#39; hello3 27test&#39;是真的。它还会将多个空格视为一个空格。

答案 3 :(得分:0)

&#13;
&#13;
var array = ["AIR CLEANING", "AIR CLN ASM C27w CLUTCH", "AIR COMPO. LUBRICATOR", "AIR COMP", "O-RING"];

console.log(
    array.map(e => (e.split(" ").length == 2) ? true : false )
   )
&#13;
&#13;
&#13;