繁体   English   中英

正则表达式提取字符串

[英]Regular expression extract string

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

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

这就是我尝试过的。

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

上面的Name, 11112121@xyz.com 但我只想要Name, 11112121

尝试这个

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

$ 1 =>名称

$ 2 => 11112121

是工作示例

改用match,像这样:

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

var matches = text.match(regex);

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

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

如果要匹配所有字符,直到@字符为止,可以使用

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

如果之后需要验证字符串中是否包含} ,可以将其添加到末尾:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM