Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Сравнение строк (https://javascript.ru/forum/events/31334-sravnenie-strok.html)

alerzo 03.09.2012 23:06

Сравнение строк
 
Добрый день!
помогите сравнить правильно два одинаковых текста, чтобы получать либо true либо false
у меня не получается, видимо из за того что это разбитый энтерами текст.
http://learn.javascript.ru/play/Xm8CFb

cyber 04.09.2012 00:57

<!DOCTYPE HTML>
<html>
  <head>
    <style>
      div {
      
        margin:40px;
        border:3px solid black;
      }
    
    </style>
  </head>
  <body>

    <div id='str1'>Земля́ — третья от Солнца планета Солнечной системы, крупнейшая по диаметру, массе и плотности среди планет земной группы.
Чаще всего упоминается как Мир, Голубая планета[4][5], иногда Терра (от лат. Terra). Единственное известное человеку на данный момент тело Солнечной системы в частности и Вселенной вообще, населённое живыми организмами.
Научные данные указывают на то, что Земля образовалась из солнечной туманности около 4,54 миллиардов лет назад,[6][7][8][9] и вскоре после этого приобрела свой единственный естественный спутник — Луну. Жизнь появилась на Земле около 3
      ,5 миллиардов лет назад. С тех пор биосфера Земли значительно изменила атмосферу и прочие абиотические факторы, обусловив количественный рост аэробных организмов, так же как и формирование озонового слоя, который вместе с магнитным полем Земли ослабляет вредную солнечную радиацию, тем самым сохраняя условия для жизни на Земле. Учитывая период полураспада радиоактивных элементов, радиация, обусловленная самой земной корой, снизилась ещё более значительно. Кора Земли разделена на несколько сегментов, или тектонических плит, которые постепенно мигрируют по поверхности за периоды во мно
      го миллионов лет. Приблизительно 70,8 % поверхности планеты занимает Мировой океан[10], остальную часть поверхности занимают континенты и острова. Жидкая вода, необходимая для всех известных жизненных форм, не существует на поверхности какой-либо из известных планет и планетоидов Солнечной системы, кроме Земли. Внутренние области Земли достаточно активны и состоят из толстого, очень вязкого слоя, называемого мантией, которая покрывает жидкое внешнее ядро (которое и является источником магнитного
      поля Земли) и внутреннее твёрдое ядро, предположительно, железное.</div>  
     <div id='str2'>Земля́ — третья от Солнца планета Солнечной системы, крупнейшая по диаметру, массе и плотности среди планет земной группы.
Чаще всего упоминается как Мир, Голубая планета[4][5], иногда Терра (от лат. Terra). Единственное известное человеку на данный момент тело
       Солнечной системы в частности и Вселенной вообще, населённое живыми организмами.
Научные данные указывают на то, что Земля образовалась из солнечной туманности около 4,54 миллиардов лет назад,[6][7][8][9] и вскоре после этого приобрела свой единственный естественный спутник — Луну. Жизнь появилась на 
       Земле около 3,5 миллиардов лет назад. С тех пор биосфера Земли значительно изменила атмосферу и прочие абиотические факторы, обусловив количественный рост аэробных организмов, так же как и формирование озонового слоя, который вместе с магнитным полем Земли ослабляет вредную солнечную радиацию, тем самым сохраняя условия для жизни на Земле. Учитывая период полураспада радиоактивных элементов, радиация, обусловленная самой земной корой, снизилась ещё более значительно. Кора Земли разделена на несколько сегментов, или тектонических плит, которые постепенно мигрируют по поверхности за периоды во много миллионов лет. Приблизительно 70,8 % поверхности планеты занимает Мировой океан[10], остальную часть поверхности занимают континенты и острова. Жидкая вода, необходимая для всех известных жизненных форм, не существует на поверхности какой-либо из известных планет и планетоидов Солнечной системы, кроме Земли. Внутренние области Земли достаточно активны и состоят из толстого, очень вязкого слоя, называемого мантией, которая покрывает жидкое внешнее ядро (которое и является источником магнитного поля Земли) и внутреннее твёрдое ядро, предположительно, железное.</div>  
     <div id='str3'>Земля́ — третья от Солнца планета Солнечной системы, крупнейшая по диаметру, массе и плотности среди планет земной группы.
Чаще всего упоминается как Мир, Голубая планета[4][5], иногда Терра (от лат. Terra). Единственное известное человеку на данный момент тело Солнечной системы в частности и Вселенной вообще, населённое живыми организмами.
Научные данные указывают на то, что Земля образовалась из солнечной туманности около 4,54 миллиардов лет назад,прочие абиотические факторы, обусловив количественный рост аэробных организмов, так же как и формирование озонового слоя, который вместе с магнитным полем Земли ослабляет вредную солнечную радиацию, тем самым сохраняя условия для жизни на Земле. Учитывая период полураспада радиоактивных элементов, радиация, обусловленная самой земной корой, снизилась ещё более значительно. Кора Земли разделена на несколько сегментов, или тектонических плит, которые постепенно мигрируют по поверхности за периоды во много миллионов лет. Приблизительно 70,8 % поверхности планеты занимает Мировой океан[10], остальную часть поверхности занимают континенты и острова. Жидкая вода, необходимая для всех известных жизненных форм, не существует на поверхности какой-либо из известных планет и планетоидов Солнечной системы, кроме Земли. Внутренние области Земли достаточно активны и состоят из толстого, очень вязкого слоя, называемого мантией, которая покрывает жидкое внешнее ядро (которое и является источником магнитного поля Земли) и внутреннее твёрдое ядро, предположительно, железное.</div>  
    
    
    <script>

      function _(selector) {
      
      return document.querySelectorAll(selector)[0];
      }

  var primary = _('#str1').innerHTML; 
      
   var str1 =  _('#str2').innerHTML;
      
   var str2 =  _('#str3').innerHTML;
      
      function getCompare (str1, str2) {
       str1 = str1.replace(/(\s|\n)/g,'');
        str2 = str2.replace(/(\s|\n)/g,'');
     
     return str1 === str2;
      }  
     
      alert(getCompare(primary, str1)); 
      alert(getCompare(primary, str2)); 
      

    </script>

  </body>
</html>

cyber 04.09.2012 01:03

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 202873)
alerzo,
Нельзя просто так разрывать строковой литерал на несколько строк.

Если переносы строк не принципиальны, делайте так:
var m = "DirectoryIndex index.php \
RewriteEngine On \
RewriteBase \
...
exploits";

Если все-таки они важны, то так:
var m = "DirectoryIndex index.php \n\
RewriteEngine On \n\
RewriteBase \n\
...
exploits";


В обоих случаях бэкслэш в конце всех строк кроме последней - обязателен.

а не проще убрать все пробелы и абзацы и сравнить?
как я сделал выше?

cyber 04.09.2012 08:53

:)

alerzo 04.09.2012 16:05

не совсем понял как мне решить проблему касательно моего случая, т.е. как на языке js сравнить эти два текста

cyber 04.09.2012 17:28

честно нечего не понятно по той ссылке что вы дали.
сделайте 2 блока в одном 1 текст в другом второй тогда скажу

alerzo 04.09.2012 19:36

там два одинаковых текста =) просто нужно их сравнивать, джава скрипт мне говорит пусто

cyber 04.09.2012 19:43

вынесите оба блока в хтмл , получите содержимое через innerHTML и сравните


Часовой пояс GMT +3, время: 18:41.