Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 15.12.2012, 13:23
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

alert("Мама мыла раму.Сын пошёл учиться.Щенок гавкал.".match(/[^.]+/g).map(function(value) {
   return value.split(/\s/);
}));


Без последних пустых элементов, т.к. не вижу в этом здравого смысла
Ответить с цитированием
  #22 (permalink)  
Старый 15.12.2012, 14:00
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Сообщение от monolithed Посмотреть сообщение
Так нужно было излагать свои мысли более четко
Постараюсь.

Нужно с использованием 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>

Последний раз редактировалось dima***, 15.12.2012 в 14:14.
Ответить с цитированием
  #23 (permalink)  
Старый 15.12.2012, 14:02
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

monolithed,объясни пожалуйста "map(function(value)"
Ответить с цитированием
  #24 (permalink)  
Старый 15.12.2012, 14:45
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от dima***
Нужно с использованием replace получить массив массивов
Зачем?

var str = 'Мама мыла раму.Сын пошёл учиться.Щенок гавкал.';
var result = [];

str.replace(/[^.]+/g, function(value) {
   return result.push(value.split(/\s/));
});

alert(result);


Сообщение от dima***
объясни пожалуйста "map(function(value)"
http://learn.javascript.ru/array-iteration#map
Ответить с цитированием
  #25 (permalink)  
Старый 15.12.2012, 15:36
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Да,спасибо.

Последний раз редактировалось dima***, 15.12.2012 в 18:02.
Ответить с цитированием
  #26 (permalink)  
Старый 15.12.2012, 18:00
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Вообщем,нужно,чтобы использовалось,то что в скобках.Типа этого:
<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>
Ответить с цитированием
  #27 (permalink)  
Старый 15.12.2012, 18:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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>
Ответить с цитированием
  #28 (permalink)  
Старый 15.12.2012, 19:54
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Рони,спасибо огромное!!!Настоящий профессор!
Ответить с цитированием
  #29 (permalink)  
Старый 16.12.2012, 12:02
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Опять не получается...

<!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***, 16.12.2012 в 12:57.
Ответить с цитированием
  #30 (permalink)  
Старый 16.12.2012, 13:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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. может придумать иную форму обучения ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите код как создать эффект... lopraeph Элементы интерфейса 1 09.06.2011 20:18
Очистить двумерный массив vah-smile Элементы интерфейса 7 30.03.2011 15:26
Если селектор возвращает массив узлов, как работать с каждым по отдельности? балерун jQuery 7 15.02.2011 12:42
как запихнуть в массив оператор ? mitiya Общие вопросы Javascript 2 09.02.2011 18:57
как создать елемент с вложеными елементами scuter Events/DOM/Window 11 14.05.2008 16:15