split
*делит* код на части, а
expression_answer
является разделителем, и следовательно убирается. Вам нужен match:
var result_answer = string_txt.match(expression_answer);
Возможно, в Вашем случае можно обойтись
var string_txt = "1 Биология. 2 География. 3 Геология.";
var result_answers = string_txt.split(". ");
for(var i = 0; i < result_answers.length; i++) {
result_answers[i] = result_answers[i].match(/^(\d+) (.+)$/).slice(1);
}
alert(result_answer[0][0]); // 1
alert(result_answer[0][1]); // Биология
alert(result_answer[1][0]); // 2
alert(result_answer[1][1]); // География
Или даже проще:
var string_txt = "1 Биология. 2 География. 3 Геология.";
var result_answers = string_txt.split(". ");
alert(result_answer[0]); // 1 Биология
alert(result_answer[1]); // 2 География