我有这个字符串“rb40425,周五01月30日11时35分三十三秒2015 @ ot7293,周五扬......”JavaScript的正则表达式
我想使用JavaScript正则表达式只获取用户名,作为rb40425和ot7293等等。
这是我目前有:
更换(/,.*/, “”);
这只返回第一个用户名。
我有这个字符串“rb40425,周五01月30日11时35分三十三秒2015 @ ot7293,周五扬......”JavaScript的正则表达式
我想使用JavaScript正则表达式只获取用户名,作为rb40425和ot7293等等。
这是我目前有:
更换(/,.*/, “”);
这只返回第一个用户名。
喜欢的东西
/[a-zA-Z0-9]+(?=,|$)/g
[a-zA-Z0-9]+
匹配一个或多个字母或digts。
(?=,)
检查上述模式中的匹配字符后面是,
还是字符串末尾$
。
例
var string = "rb40425,Fri Jan 30 11:35:33 [email protected],Fri Jan....";
console.log(string.match(/[a-zA-Z0-9]+(?=,|$)/g));
// => ["rb40425", "ot7293"]
string = "d7922,Tue Mar 4 17:28:45 [email protected],Tue Mar 4 17:29:42 [email protected],Tue Mar 4 17:28:45 [email protected]";
console.log(string.match(/[a-zA-Z0-9]+(?=,|$)/g));
// => ["d7922", "ld7922", "rr7323", "ld7922"]
这实际上工作。非常感谢 –
@ReazurRahman不客气。做upvote并接受答案,如果你发现它们有用:) – nu11p01n73R
所以我仍然无法显示超过两个用户,当我有这样的输出:d7922,2月4日星期二17:28:45 2014 @ ld7922,Tue Mar 4 17:29:42 2014 @ rr7323,Tue Mar 4 17:28:45 2014 @ ld7922, –
可以在每个@
符号分割字符串,然后.map()
用户的阵列,以只使用/,.*$/
的用户名的一个新的数组正则表达式从逗号开始匹配eveything。
像这样:
var str = "rb40425,Fri Jan 30 11:35:33 [email protected],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);
这将取代每个逗号和以下所有字符(但少尽可能),直到它找到一个@
符号或字符串的结尾。
所以我仍然无法显示超过两个用户,当我有这样的输出:d7922,星期二4月17:28:45 2014 @ ld7922,星期二4月17:29:42 2014 @ rr7323,星期二4月4日17:28:45 2014 @ ld7922, –
'var str =“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“; var users = str.split('@')。map(function(x){return x.replace(/,.*$/,'');}); console.log(users.join('\ n'));'输出4个用户,我发布的第二个方法也是如此。 – MT0
其实它只是把前两个用户。我会尝试附上一个屏幕截图。 –
你怎么知道用户名是什么? –
会'/ [a-z] {2} \ d +/g'工作吗? –