Как уже упоминали другие, цепочка достаточно хороша для чего-то столь же простого, как то, что вы просите. Однако, если вы хотите, чтобы это было более динамичным, вы можете использовать функцию замены в качестве второго аргумента:
function formatTextArea() {
var textString = document.getElementById('userinput').value;
var formatText = textString.replace(/\n|\s/g, function ($0) {
if ($0 === "\n")
return ",";
else if ($0 === " ")
return "_";
}
alert(formatText);
}
Использование функции заменителя позволит вам быть динамичным без необходимости связывать вместе вызовы replace()
. Это также может быть немного быстрее (анализатор регулярных выражений вызывается только один раз). Имейте в виду, что \s
будет соответствовать больше, чем просто символ пробела, однако :-) Для целей вашего вопроса этого будет достаточно:
var formatText = textString.replace(/\n|\s/g, function ($0) {
return $0 == "\n" ? "," : "_";
}