繁体   English   中英

当字符串按顺序包含数组中的元素时

[英]When String Contains Elements From Arrays In Order

当变量“ message”按顺序包含每个数组中的一个元素时,如何使控制台打印为真:“ greetings”,“ colour”,“ names”,但在“ greetings”之前和“ colour”之后的任何单词仍显示为true 。

如果元素乱序,则应打印false。

如果元素之间有单词,则应打印false。

查看当前代码下方的示例。

当前代码:

var message = '';
var greetings = 'hi' || 'hello' || 'hey';
var colour = 'red' || 'green' || 'blue';
var names = 'john' || 'evan' || 'etienne';

if (message.includes(greetings + ' ' + colour + ' ' + names)) {
  console.log(true);
} else {
  console.log(false);
}

消息时应打印的示例:

message = 'hi green evan' //true
message = 'lol hey blue john' //true
message = 'hello green etienne! xD' //true
message = 'evan green hi' //false because wrong element order
message = 'hi very green evan' //false because word in-between elements

 var message = 'hi green evan'; var greetings = ["hi","hello","hey"]; var colour = ['red','green','blue']; var names = ['john','evan','etienne']; var contained = false; greetings.some(x =>{ colour.some(z=>{ names.some(e=>{ if(message.includes(x + ' ' + z + ' ' + e)){ contained = true; alert(true); } }); }); }); if(!contained) alert(false); 

您可以这样做。 可能不是最好的方法,但我想到的第一件事

您可以为此使用正则表达式。

 var message = "hello green etienne! xD"; var greetings = ["hi", "hello", "hey"].join("|"); var colors = ["red", "green", "blue"].join("|"); var names = ["john", "evan", "etienne"].join("|"); var reg = new RegExp("^.*(" + greetings + ")\\\\s+.*(" + colors + ")\\\\s+(" + names + ").*$"); console.log(reg.test(message)); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM