Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.12.2015, 22:25
Интересующийся
Отправить личное сообщение для Alex961 Посмотреть профиль Найти все сообщения от Alex961
 
Регистрация: 29.11.2015
Сообщений: 14

Найти слова в тексте у которых первая и последняя буквы совпадают
Помогите пожалуйста, уже замучился . Пытался сначала решить задачу сам, но никак не выходит. Точнее выходит но не до конца. Программа работает только если я введу с клавиатуры одно слово, а с текстами не работает. Объясните ,пожалуйста ,что не так.Как сделать чтобы программа работала с текстом. Вот код:
var text;
text=prompt("enter a text");
for(var i=0;i<text.length;i++){
 
if(text.charAt(i)===text.charAt(text.length-1)){

    document.write("the first and the last letters are the same");
}
else {
   document.write("the first and the last letters are not the same");
}
 break; }
Ответить с цитированием
  #2 (permalink)  
Старый 10.12.2015, 22:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Alex961,
разбить текст на слова наверно нужно сначала, потом отфильтровать, затем вывести (желательно без всяких document.write)
Ответить с цитированием
  #3 (permalink)  
Старый 10.12.2015, 22:57
Интересующийся
Отправить личное сообщение для Alex961 Посмотреть профиль Найти все сообщения от Alex961
 
Регистрация: 29.11.2015
Сообщений: 14

Спасибо большое за ответ. Очень помогло. Вот только вопрос, а почему желательно без document.write? Я просто пока новичок.
Ответить с цитированием
  #4 (permalink)  
Старый 10.12.2015, 23:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Alex961,
потому что сотрёт страницу если использовать в скриптах после загрузки страницы (в данном случае не критично)
Ответить с цитированием
  #5 (permalink)  
Старый 10.12.2015, 23:08
Интересующийся
Отправить личное сообщение для Alex961 Посмотреть профиль Найти все сообщения от Alex961
 
Регистрация: 29.11.2015
Сообщений: 14

Благодарю...Иногда ответ лежит на поверхности, но я почему-то его не замечаю...
Ответить с цитированием
  #6 (permalink)  
Старый 10.12.2015, 23:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Alex961,

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  span{
    background-image: -webkit-gradient(linear, left, right, color-stop(0, #FFD700), color-stop(1, #FF0000));
    background-image: -o-linear-gradient(left, #FFD700, #FF0000);
    background-image: -moz-linear-gradient(left, #FFD700, #FF0000);
    background-image: -webkit-linear-gradient(left, #FFD700, #FF0000);
    background-image: linear-gradient(to right, #FFD700, #FF0000);
    font-size: 24px;
    font-weight: bold;
    color: #FFFFFF;
    padding: 6px 4px;
    border-radius: 4px;
    margin: 5px;
  }

  </style>
</head>

<body>
<script>
var text=prompt("enter a text")
  .split(/\s+/)
  .filter(function(word) {
  return word && word.charAt(0)===word.charAt(word.length-1)
}).map(function(word) {
  return '<span>'+word+'<\/span>'
});
text.forEach(function(word, i ) {
   document.body.children[i].insertAdjacentHTML("beforeBegin", word);
})
</script>
</body>

</html>

Последний раз редактировалось рони, 10.12.2015 в 23:33.
Ответить с цитированием
  #7 (permalink)  
Старый 10.12.2015, 23:14
Интересующийся
Отправить личное сообщение для Alex961 Посмотреть профиль Найти все сообщения от Alex961
 
Регистрация: 29.11.2015
Сообщений: 14

Круууто как ... А мне еще пока учиться и учиться...Спасибо вам за помощь..
Ответить с цитированием
  #8 (permalink)  
Старый 10.12.2015, 23:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Alex961,
не очень пришлось 35 строку поправить чтоб переменную text сохранить, если не нужна то var text= в прежнем варианте лишнее.
prompt("enter a text")
  .split(/\s+/)
  .filter(function(word) {
  return word && word.charAt(0)===word.charAt(word.length-1)
}).map(function(word) {
  return '<span>'+word+'<\/span>'
}).forEach(function(word, i ) {
   document.body.children[i].insertAdjacentHTML("beforeBegin", word);
})
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт выделяющий слова в тексте. Что я делаю не так Aleksey140569 Общие вопросы Javascript 7 23.05.2017 14:37
Найти в тексте символ, отличающийся по стилю Tormozz Общие вопросы Javascript 15 22.09.2015 12:06