在typescript中拆分字符串的最佳方法是什么

时间:2018-02-16 06:53:47

标签: javascript arrays string typescript split

我的字符串输入类似于

输入 text:string =“今天午餐200 #hotelname”

输出 主题:“今天午餐” 价格:200 tag:#hotelname

我的解决方案是

text: string = "today lunch 200 #hotelname"
  tag: string;
  price: string;
  subject: string;

 this.text.forEach(x => {
      if(this.reg.test(x)){
         this.tag= x;
      }else if(parseInt(x)){
          this.price = x;
      }
      else{
        this.subject= x;
      }
    });
 console.log(this.subject, this.tag, this.price);

但问题是我的解决方案不满足所有测试用例是否有更好的解决方案使用打字稿或在javascript中

测试用例

  1. 字符串不能有两个没有
    前1:今天午餐200 #hotel 200
    前2:200食物2 0 1 #pasta
  2. 以#开头的文字被视为标签,而不能在一个文字中有多个标签 字符串
  3. 如果字符串就像是“xyz hotel 100 #chinies的食物” 输出:主题:“xyz酒店的食物”         价格:100         标签:#chinies

1 个答案:

答案 0 :(得分:1)

使用match

let string = "today lunch 200 #hotelname";

console.log(string.match(/(.*)\s+(\d+)\s+(#.*)/))