2011-09-01 12 views

Respuesta

27

de expresiones regulares con el partido

con los controles de seguridad

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

escribir como una línea

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

de expresiones regulares con sustituir

con los controles de seguridad

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

escritos como una línea

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

de Split cadena

con los controles de seguridad

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

escrito como una línea

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

pruebas de rendimiento de cada ejemplo

JSPerf Tests

+0

No estoy seguro sobre la semántica de JavaScript, pero me gustaría utilizar este patrón:/. + (? = @)/ – Xarylem

+0

De una manera funcional: 'str.split (" @ "). Reduce (user => usuario) ' – schabluk

+0

@epascarello - ¿Por qué no estás (o alguien más aquí) usando un simple' str.substring (0, str.indexOf ("@")) '? Como tienes 65 veces más reputación que yo, estoy bastante seguro de que me estoy perdiendo algo, simplemente no sé qué ... – myfunkyside

Cuestiones relacionadas