dima***,
reg=/([А-Яа-я]+)\s([А-Яа-я]+)(
(\s([А-Яа-я]+)\s([А-Яа-я]+))?\./g лишняя скобка в регепсе
с 22 строки перепутана русская
с с английской
+ вместо длины массива используется длина ячейки
с
[i].length
+ желательно использовать var при обьявлении переменной
Рабочий вариант ...
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
var a = "Мама мыла.Старший сын пошел учиться.Щенок гавкал.",
reg = /([А-Яа-я]+)\s([А-Яа-я]+)(\s([А-Яа-я]+)\s([А-Яа-я]+))?\./g,
b = a.match(reg),
c = new Array;
for (i = 0; i < b.length; i++) {
c[i] = b[i].replace(reg, '$1,-,$2,$4,$5');
c[i] = c[i].split(/,/);
}
for (i = 0; i < c.length; i++) {
document.write(c[i] + '<br>');
}
var i, j;
document.write("<table border=1>");
for (i = 0; i < c.length; i++) {
document.write("<tr>");
for (j = 0; j < c[i].length; j++) {
document.write("<td>" + c[i][j] + "</td>")
}
document.write("</tr>")
}
document.write("</table>");
</script>
</body>
</html>
P.S. может придумать иную форму обучения ?