Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式提取字符串_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式提取字符串

Javascript 正则表达式提取字符串,javascript,regex,Javascript,Regex,我有一个字符串“@{Name;11112121@xyz.com}“ 我想编写一个正则表达式,从上面的字符串中提取Name和11112121 这就是我试过的 function formatName(text){ var regex = /@\{([^;]+); ([^\}]+)\}/ return text.replace( regex, '$1, $2' ); } 上面给出了名称,11112121@xyz.com。但是我只想要名称,11112121如果

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

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

这就是我试过的

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

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

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

var regex = /@\{([^;]+); ([^@]+)/
如果在此之后需要验证字符串是否还包含
}
,可以将其添加到末尾:

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

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

var regex = /@\{([^;]+); ([^@]+)/
如果在此之后需要验证字符串是否还包含
}
,可以将其添加到末尾:

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

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

$2=>11112121

这是一个有效的例子吗

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

$2=>11112121


工作示例是否改为使用匹配,如下所示:

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

var matches = text.match(regex);

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

改用匹配,如下所示:

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

var matches = text.match(regex);

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