正则表达式匹配对查询字符串

时间:2015-08-04 02:44:23

标签: javascript regex

我有这样的字符串:

  

prikey = 2,ju = 20150101,name = sdf,email = sdfsdf@naver.com,sub =(한진해운)2014년도케미컬선장,1항기,사채용

我想像这样分开每一对:

  
      
  1. prikey = 2

  2.   
  3. 菊= 20150101

  4.   
  5. 名= SDF

  6.   
  7. email=sdfsdf@naver.com

  8.   
  9. sub =(한진해운)2014년도케미컬선장,1항기,사채용

  10.   

我试过这段代码:

{{1}}

但它不能正常工作。

  
      
  1. prikey = 2

  2.   
  3. 菊= 20150101

  4.   
  5. 名= SDF

  6.   
  7. email=sdfsdf@naver.com

  8.   
  9. sub =(한진해운)2014년도케미컬선장

  10.   

2 个答案:

答案 0 :(得分:2)

您可能能够通过以下模式捕获您想要的内容,例如:

(?:,)\s|([^=]+=\s[\w@\.\s]+|[\w].+)

<强>结果

prikey = 2 
ju = 20150101 
name = sdf
email = sdfsdf@naver.com
sub = (한진해운) 2014년도 케미컬 선장, 1항기, 사 채용

示例

https://regex101.com/r/sP5sB8/1

<强>代码

http://jsfiddle.net/df06waLd/

答案 1 :(得分:0)

您可以使用str.split(', ')

&#13;
&#13;
var str = 'prikey = 2, ju = 20150101, name = sdf, email = sdfsdf@naver.com, sub = (한진해운) 2014년도 케미컬 선장, 1항기, 사 채용';

var result = str.split(', ');
var wanted = [];

result.forEach(function(el) {
  if (el.indexOf('=') !== -1) {
    wanted.push(el);
  } else {
    wanted[wanted.length - 1] += ', ' + el;
  }
})

console.log(wanted);
&#13;
&#13;
&#13;

你会得到:

["prikey = 2", "ju = 20150101", "name = sdf", "email = sdfsdf@naver.com", "sub = (한진해운) 2014년도 케미컬 선장, 1항기, 사 채용"]