Javascript 如何拆分字符串,在字符前打断一个单词?

Javascript 如何拆分字符串,在字符前打断一个单词?,javascript,split,Javascript,Split,我有以下字符串 'Material: Metall & PVC Size: Ø 32 mm Weight: 8 gram' 使用JavaScript,最快的解析方法是什么: var title = ["Material:", "Size:", "Weight:"]; var property = ["Metall & PVC", "Ø 32 mm", "8 gram"]; 试试这个 var regex = new RegExp(title.join("|")); var in

我有以下字符串

'Material: Metall & PVC Size: Ø 32 mm Weight: 8 gram'
使用JavaScript,最快的解析方法是什么:

var title = ["Material:", "Size:", "Weight:"];
var property = ["Metall & PVC", "Ø 32 mm", "8 gram"];
试试这个

var regex = new RegExp(title.join("|"));
var input = 'Material: Metall & PVC Size: Ø 32 mm Weight: 8 gram';
var property = input.split( regex ).slice(-(title.length));
演示

变量标题=[材料:,尺寸:,重量:]; var输入='材料:金属和PVC尺寸:32毫米重量:8克'; var regex=new RegExptitle.join |; var property=input.splitregex.slice-title.length.map functionitem{return item.trim;};
console.logproperty 我知道正则表达式并不便宜,如果你的标题中有空格,这将不起作用,但我认为这对你来说是一个很好的起点

var string='Material: Metall & PVC Size: Ø 32 mm Weight: 8 gram';
var title=[], properties=[];
string.split(/(\w+:) /).forEach(function(element,index){
  if(index>0){// ignore first empty element
    if(index%2==1){
      title.push(element); // collect titles
    }else{
      properties.push(element); // collect properties
    }
  }
});
为了得到头衔

变量字符串、标题; 字符串='材料:金属和PVC尺寸:32毫米重量:8克'; titles=string.match/[a-zA-Z]+:/g; console.logtitles 变量字符串='材料:金属和PVC尺寸:32毫米重量:8克'; var title=string.match/[^]+:/g; var属性=string.split/?[^]+:?/g.splite1;
console.logtitle,属性;伟大的解决方案!我怎样才能得到这个头衔呢?@walentinwidgeren但你已经有了这个头衔,对吧?很抱歉给你带来了困惑。但我也需要对标题进行解析。为此,您需要在第一个值和第二个标题之间保留一个分隔符。我想对此进行投票,但不幸的是,我的声誉太低了。我听说regex会导致一些性能问题。但是还有其他选择吗?是的,你可以为你的行格式开发一个解析器词法分析器,并用它收集你的标题和属性。但对你来说,那就太过分了。