2011-09-01 8 views

risposta

27

espressione regolare con la corrispondenza

con i controlli di sicurezza

var str="[email protected]"; 
var nameMatch = str.match(/^([^@]*)@/); 
var name = nameMatch ? nameMatch[1] : null; 

scritto come una linea

var name = str.match(/^([^@]*)@/)[1]; 

Regular Expression con sostituire

con i controlli di sicurezza

var str="[email protected]"; 
var nameReplace = str.replace(/@.*$/,""); 
var name = nameReplace!==str ? nameReplace : null; 

scritte come una linea

var name = str.replace(/@.*$/,""); 

Split String

con i controlli di sicurezza

var str="[email protected]"; 
var nameParts = str.split("@"); 
var name = nameParts.length==2 ? nameParts[0] : null; 

scritto come una linea

var name = str.split("@")[0]; 

test delle prestazioni di ogni esempio

JSPerf Tests

+0

Non sono sicuro sulla semantica di Javascript, ma vorrei utilizzare questo schema:/. + (? = @)/ – Xarylem

+0

In modo funzionale: 'str.split (" @ "). Reduce (utente => utente) ' – schabluk

+0

@epascarello - Perché non sei tu (o nessun altro qui) che usi un semplice' str.substring (0, str.indexOf ("@")) '? Dato che hai una reputazione circa 65 volte superiore a me, sono abbastanza sicuro che mi manchi qualcosa, solo che non so cosa ... – myfunkyside

0
var email = "[email protected]"; 

var username = email.substring(0,email.indexOf('@')) 
Problemi correlati