2012-02-08 4 views
3

Как сравнить аналогичные строки в jquery?Сравнение похожих строк в jquery

<script src="../../js/jq.js"></script> 
<script> 
$(function(){ 
    var str1 = $.trim($('#str1').val().toUpperCase()); 
    var str2 = $.trim($('#str2').val().toUpperCase()); 
    if(str1==str2){ 
     console.log('yep'); 
    } 
}); 
</script> 
<input type="text" id="str1" value="One String"/> 
<input type="text" id="str2" value="One String1"/> 

Сравнивая «одна строка» и «One string1» не будет работать, если я только проверить, если два значения равны. Есть ли способ сделать это в jquery? Например, я хочу сравнить только 90% строки.

+0

Можете ли вы подробнее рассказать о том, как вы хотите сравнить строки? –

+1

Что значит «90% строки»? То, что 90% персонажей равны? Или, может быть, это подстрока другого? –

+0

Вы можете использовать 'str2.indexOf (str1)> -1', если вы просто хотите проверить, что' str2' содержит 'str1'. – jabclab

ответ

4

Проверьте это: http://jsfiddle.net/Sj5dE/ Вы можете закомментировать, блок Б, чтобы увидеть подобие струн , Это, конечно, чувствительный к регистру. Надеюсь, это поможет. Поскольку в вашем примере говорилось о сравнении двух похожих строк, я подумал, что, скорее всего, начало строк одинаково, поэтому я не представил никакой логики подстроки, но не стесняюсь изменять функцию.

2

Попробуйте это может работать

<script src="../../js/jq.js"></script> <script> 
$(function(){  
var str1 = $.trim($('#str1').val().toUpperCase());  
var str2 = $.trim($('#str2').val().toUpperCase());  
if(str1===str2){   console.log('yep');  } }); 
</script> 
<input type="text" id="str1" value="One String"/> 
<input type="text" id="str2" value="One String1"/> 
+0

ive интересно об этом некоторое время. Я знаю, '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' Не удалось найти его на google в прошлый раз lol –

+0

=== строгое равенство. 5 === "5" приведет к ошибке. Как правило, можно уйти с типом, но если вы хотите, чтобы ваши значения имели точный тип данных, а также значение, то вы можете использовать ===. Это может помочь http://www.w3schools.com/js/js_comparisons.asp –

4

Вы можете увидеть, если один находится внутри другого, например:

if (str1.indexOf(str2) >= 0 || str2.indexOf(str1) >= 0) 
    console.log('yep'); 
} 
1

В Javascript вы можете использовать substring, чтобы получить 90% строки, которую вы хотели бы сравнить.

$(function(){ 
    var str1 = $.trim($('#str1').val().toUpperCase().substring(0, 10); 
    var str2 = $.trim($('#str2').val().toUpperCase().substring(0, 10); 
    if(str1==str2){ 
     console.log('yep'); 
    }