【问题标题】:String To String Array With Multiple Conditions具有多个条件的字符串到字符串数组
【发布时间】:2018-03-10 17:14:25
【问题描述】:

我有一个机器人可以处理带有给定参数的字符串。这是我试图获取命令参数的内容:

parse: function (message, argLength) {
        var words = message.split(" ");
        words.shift(); // Don't return command name in array.
        if (words.length < argLength) // If there is not enough parameters, return null
            return null;
        else if (words.length == argLength) {   // If length is exact same, return     
            return words;
        }
        else { //Otherwise, concenate first ones till it is exact length.
            var concenateString = "";
            var length = words.length - argLength + 1;
            for (var i = 0; i < length; i++) {
                var element = words[0];
                concenateString += " " + element;
                words.shift();
            }
            words.unshift(concenateString);
            return words;
        }
    }

如果参数多于所需参数,它将自动连接第一个字符串,因为它是由空格分隔的。 a b c 以 "a b" "c" 的两个参数为例。但是如果" 被通过了,我想在" 之间得到单词,而不仅仅是让步。

【问题讨论】:

  • 请添加一些调用示例和想要的结果。
  • 假设我想要两个参数;给定的参数是“一些多”“单词参数”。此代码会将其解析为如下数组:["some multi word","parameters"]

标签: javascript arrays node.js string split


【解决方案1】:

在执行任何业务逻辑之前,您可以使用正则表达式来提取 " 或单词之间的任何内容:

var str = 'one two "three is family"'
var re = /"([^"]+)"|([a-zA-Z0-9]+)/g

console.log(
  str.match( re )
)

【讨论】:

  • 这会返回一个字符串数组吗?
  • 试试我做了一个sn-p
  • @maloman 这是我真正需要的,谢谢。我会接受这个作为正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
相关资源
最近更新 更多