javascript正则表达式
我有这个字符串“rb40425,Fri Jan 30 11:35:332015@ot7293,1月5日……” 我想使用javascript正则表达式只获取用户名,比如rb40425和ot7293等等 这就是我目前拥有的: 替换(/,.*/,“”) 它只返回第一个用户名 类似于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
/[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个用户,我发布的第二个方法也是如此。实际上它只输出前两个用户。我将尝试附加一个屏幕截图。