我有這個字符串「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'工作嗎? –