alert("Мама мыла раму.Сын пошёл учиться.Щенок гавкал.".match(/[^.]+/g).map(function(value) { return value.split(/\s/); })); Без последних пустых элементов, т.к. не вижу в этом здравого смысла |
Цитата:
Нужно с использованием replace получить массив массивов: a=[Мама,мыла,раму] [Сын,пошёл,учиться] [Щенок,гавкал,''] <script> a="Мама мыла раму.Сын пошел учиться.Щенок гавкал."; reg=/([А-Яа-я]+)\s([А-Яа-я]+)\s([А-Яа-я]+)\./g; b=a.match(reg); pat=/\./; c=new Array; for(i=0;i<b.length;i++){ document.write(b[i]+'<br>'); c[i]=b[i].replace(reg,'$1,-,$2,$3') } for(i=0;i<c.length;i++){ document.write(c[i]+'<br>'); } </script> |
monolithed,объясни пожалуйста "map(function(value)"
|
Цитата:
var str = 'Мама мыла раму.Сын пошёл учиться.Щенок гавкал.'; var result = []; str.replace(/[^.]+/g, function(value) { return result.push(value.split(/\s/)); }); alert(result); Цитата:
|
Да,спасибо.
|
Вообщем,нужно,чтобы использовалось,то что в скобках.Типа этого:
<script> a="Мама мыла раму.Сын пошел учиться.Щенок гавкал."; reg=/([А-Яа-я]+)\s([А-Яа-я]+)\s([А-Яа-я]+)\./g; b=a.match(reg); pat=/\./; c=new Array; for(i=0;i<b.length;i++){ document.write(b[i]+'<br>'); c[i]=b[i].replace(reg,'$1,-,$2,$3') } for(i=0;i<c.length;i++){ document.write(c[i]+'<br>'); } </script> |
dima***,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. Вариант... <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <script> a="Мама мыла раму.Сын пошел учиться.Щенок гавкал."; reg=/([А-Яа-я]+)\s([А-Яа-я]+)(\s([А-Яа-я]+))?\./g; b=a.match(reg); c=new Array; for(i=0;i<b.length;i++){ document.write(b[i]+'<br>'); c[i]=b[i].replace(reg,'$1,$2,$3').split(/,/); } for(i=0;i<c.length;i++){ document.write(c[i]+'<br>'); } </script> </body> </html> |
Рони,спасибо огромное!!!Настоящий профессор!:thanks:
|
Опять не получается...
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <script> 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(j=0;j<c[i].length;j++){ document.write(c[i][j]+'<br>'); } } document.write("<table border=1>"); for (i = 0; i <с[i].length; i++) {document.write("<tr>"); for (j = 0; j < с[j].length; j++) {document.write("<td>"+с[i][j]+"</td>")} document.write("</tr>") } document.write("</table>"); </script> </body> </html> |
dima***,
reg=/([А-Яа-я]+)\s([А-Яа-я]+)((\s([А-Яа-я]+)\s([А-Яа-я]+))?\./g лишняя скобка в регепсе с 22 строки перепутана русская с с английской + вместо длины массива используется длина ячейки с + желательно использовать 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. может придумать иную форму обучения ? |
Часовой пояс GMT +3, время: 19:39. |