javascript正则表达式

javascript正则表达式,javascript,regex,Javascript,Regex,我有这个字符串“rb40425,Fri Jan 30 11:35:332015@ot7293,1月5日……” 我想使用javascript正则表达式只获取用户名,比如rb40425和ot7293等等 这就是我目前拥有的: 替换(/,.*/,“”) 它只返回第一个用户名 类似于 /[a-zA-Z0-9]+(?=,|$)/g [a-zA-Z0-9]+匹配一个或多个字母或数字 (?=,)检查上述模式中的匹配字符后面是否跟有、或字符串末尾$ 示例 var string = "rb40425,Fr

我有这个字符串“rb40425,Fri Jan 30 11:35:332015@ot7293,1月5日……”

我想使用javascript正则表达式只获取用户名,比如rb40425和ot7293等等

这就是我目前拥有的:

替换(/,.*/,“”)

它只返回第一个用户名

类似于

/[a-zA-Z0-9]+(?=,|$)/g
  • [a-zA-Z0-9]+
    匹配一个或多个字母或数字

  • (?=,)
    检查上述模式中的匹配字符后面是否跟有
    或字符串末尾
    $

示例

var string = "rb40425,Fri Jan 30 11:35:33 2015@ot7293,Fri Jan....";
console.log( string.match(/[a-zA-Z0-9]+(?=,|$)/g));
// => ["rb40425", "ot7293"]

string = "d7922,Tue Mar 4 17:28:45 2014@ld7922,Tue Mar 4 17:29:42 2014@rr7323,Tue Mar 4 17:28:45 2014@ld7922";
console.log( string.match(/[a-zA-Z0-9]+(?=,|$)/g));
// => ["d7922", "ld7922", "rr7323", "ld7922"]

您可以在每个
@
符号处拆分字符串,然后使用
/,.*$/
正则表达式将用户数组拆分为仅包含用户名的新数组,以匹配从逗号开始的所有内容

像这样:

var str = "rb40425,Fri Jan 30 11:35:33 2015@ot7293,Fri Jan....";
var users = str.split('@')
               .map( function(x){ return x.replace( /,.*$/, '' ); } );
console.log( users.join('\n') );
如果不希望拆分字符串,则可以使用:

var users = str.replace( /,.*?(@|$)/g, ',' );
console.log( users );

这将替换每个逗号和以下所有字符(但尽可能少),直到它找到
@
符号或字符串结尾。

您如何知道用户名?
/[a-z]{2}\d+//g
有效吗?@ReazurRahman欢迎您。如果您觉得答案有用,请进行投票并接受:)因此,当我有这样的输出时,我仍然无法显示两个以上的用户:d7922,3月4日星期二17:28:452014@ld7922,3月4日星期二17:29:422014@rr7323,3月4日星期二17:28:452014@ld7922,@ReazurRahman这是我角色的一个小故障。通过添加
$
修复。请看第二个示例。因此,我输出匹配的列似乎不够大,无法显示所有用户是否有方法仅显示前4个字符。像dl79,ld79,rr73,ld79。所以当我有这样的输出时,我仍然不能显示两个以上的用户:d7922,3月4日星期二17:28:452014@ld7922,3月4日星期二17:29:422014@rr7323,3月4日星期二17:28:452014@ld7922,
var str=“d7922,3月4日星期二17:28:452014@ld7922,3月4日星期二17:29:422014@rr7323,3月4日星期二17:28:452014@ld7922,"; var users=str.split('@').map(函数(x){return x.replace(/,.*$/,'');});console.log(users.join('\n'))输出4个用户,我发布的第二个方法也是如此。实际上它只输出前两个用户。我将尝试附加一个屏幕截图。