Регулярное выражение с соответствием
с проверками безопасности
var str="someone@example.com";
var nameMatch = str.match(/^([^@]*)@/);
var name = nameMatch ? nameMatch[1] : null;
, записанное одной строкой
var name = str.match(/^([^@]*)@/)[1];
Регулярное выражение с заменой
с проверками безопасности
var str="someone@example.com";
var nameReplace = str.replace(/@.*$/,"");
var name = nameReplace!==str ? nameReplace : null;
записано одной строкой
var name = str.replace(/@.*$/,"");
Разделительная строка
с проверками безопасности
var str="someone@example.com";
var nameParts = str.split("@");
var name = nameParts.length==2 ? nameParts[0] : null;
, записанные одной строкой
var name = str.split("@")[0];
Тесты производительности каждого примера
Тесты JSPerf