正则表达式提取字符串

时间:2014-01-20 11:05:25

标签: javascript regex

我有一个字符串"@{Name; 11112121@xyz.com}"

我想写一个从上面的字符串中提取Name11112121的正则表达式

这就是我的尝试。

function formatName(text){ 
  var regex = /@\{([^;]+); ([^\}]+)\}/
  return text.replace(
      regex,
      '$1, $2'
  );  
}

上面给出了Name, 11112121@xyz.com。但我只想要Name, 11112121

3 个答案:

答案 0 :(得分:3)

试试这个

var regex = /@\{([^;]+); ([^\}]+)(@.*)\}/

$ 1 =>名称

$ 2 => 11112121

Here是工作示例

答案 1 :(得分:2)

改为使用匹配,如下所示:

var regex = /@\{([^;]+);\s+([^@]+)/;

var matches = text.match(regex);

alert(matches[1] + ', ' + matches[2]);

http://jsfiddle.net/rooseve/bM2U6/

答案 2 :(得分:0)

如果要匹配@字符之前的所有内容,可以使用

var regex = /@\{([^;]+); ([^@]+)/

如果您需要在此之后验证字符串是否还包含},则可以将其添加到结尾:

var regex = /@\{([^;]+); ([^@]+)[^}]*\}/