Разделите пробел (\s
), а не на слове (\W
), и вы сохраните пунктуацию.
function make_void( str )
{
var str_arr = str.split( /\s+/ ); // !!!THIS LINE CHANGED!!!
var voidstr;
var newstr = "";
for ( var i = 0; i < str_arr.length; i++ )
{
voidstr = str_arr[i];
// if ( Math.random() <= 0.9 )
// {
voidstr = voidstr.replace( /\w/gi, "?" );
// }
newstr += voidstr + " ";
}
document.writeln( newstr );
}
обновление: пример фрагмента с использованием метода Array.join ():
for ( var i = 0; i < str_arr.length; i++ )
{
// if ( Math.random() <= 0.9 )
// {
str_arr[i] = str_arr[i].replace( /\w/gi, "?" );
// }
}
var newstr = str_arr.join(' ');