Javascript正则表达式拆分(val(数字)=)

时间:2014-07-21 07:09:22

标签: javascript jquery regex

这是我的数据

var result = Val1 = 08182014& sydney-holistic-dental-center-14750975& 2000& Dentist&     VAL2 = 08182014&安培;九龙 - 餐厅 - 12494711&安培; 2000&安培;餐厅和放大器;     VAL3 = 08182014&安培; MR-开关 - 电 - 14251034&安培; 2000&安培;电工&安培;     VAL4 = 08182014&安培;激光瞄准-13604978&安培; 2000&安培;医生和安培;     Val5 = 08182014&安培;润滑油移动最移动力学-14755685&安培; 2000&安培;力学&安培;     VAL6 = 08182014&安培; MR-H2O水暖服务-14223825&安培; 2000&安培;管道工和放大器;     Val7 = 08182014&安培;菲利普-泽维尔-理发师-14887853&安培; 2000&安培;理发师&安培;     的Val8 = 08182014&安培;杰拉德-马洛夫-伙伴-12372365&安培; 2000&安培;律师&安培;     Val9 = 08182014&安培;美容宽限期-13817412&安培; 2000&安培; Beauty_Salons&安培;     Val10 = 08182014&安培;快速施工-PTY-LTD-15093518&安培; 2000&安培;助洗剂

我想解析我的数据和格式为<date>&<business>&<post_code>&<category>。我想跳过val1,val2等,只是为了获得08182014&amp; sydney-holistic-dental-center-14750975&amp; 2000&amp; Dentist <date>&<business>&<post_code>&<category>。我该怎么做才能跳过Val1 =,val2-,val3 =等并放入数组中。之后我可以遍历我的数组并将其拆分为(&amp;)。

我想做一个像(08182014&amp; sydney-holistic-dental-center-14750975&amp; 2000&amp; Dentist,08182014&amp; nine-dragons-restaurant-12494711&amp; 2000&amp; Restaurant等)的数组

2 个答案:

答案 0 :(得分:0)

捕获到第1组

使用此:

var the_matches = []; 
var myregex = /^Val\d+=(.*)/mg;
var thematch = myregex.exec(yourString);
while (thematch != null) {
    the_matches.push(thematch[1]);
    thematch = myregex.exec(yourString);
}

您的匹配数组为the_matches

<强>解释

  • m标志会启用多行模式,允许^在每行上匹配
  • ^锚点断言我们位于字符串的开头
  • Val匹配Val(但不会在数组中)
  • \d+匹配数字
  • =匹配=
  • (.*)捕获=到第1组
  • 行后的所有内容
  • 代码构建一个包含所有Group 1捕获的数组

答案 1 :(得分:0)

您可以.split(/&Val\d+=/)将字符串拆分为数组。使用&您只需使用.replace(regexp),然后

var arr = str.split(/&Val\d+=/); //split
for(var i=0; i< arr.length -1; i++){
    arr[i] = arr[i].replace(/Val\d+=/g, '');  //replace Val1, Val2 string
}

DEMO

相关问题