使用jQuery比较相似的字符串

3

如何在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 String" 和 "One String1" 将不起作用。有没有办法在 jQuery 中做到这一点?例如,我只想比较字符串的90%。


你能详细说明一下你想要如何比较这些字符串吗? - Paul Nikonowicz
1
你说的“字符串的90%”是什么意思?是指有90%的字符相同吗?还是其中一个是另一个的子串? - Andrew Marshall
如果您只想检查 str2 是否包含 str1,则可以使用 str2.indexOf(str1) > -1 - jabclab
@AndrewMarshall:我想确定第一个字符串的模式是否与另一个相似。90%的字符也可能有效,我只是想使用jquery减少数据冗余。 - Wern Ancheta
6个回答

6
您可以查看一个是否包含在另一个内,例如:
if (str1.indexOf(str2) >= 0 || str2.indexOf(str1) >= 0)
    console.log('yep');
}

5

看一下这个: http://jsfiddle.net/Sj5dE/ 你可以注释掉a,b块来查看字符串的相似度。这当然是区分大小写的。希望这可以帮助你。由于你的示例是关于比较两个类似的字符串,我认为字符串的开头最可能相同,所以没有引入任何子字符串逻辑,但随意更改函数。


3

试试这个,可能会有用

    <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"/> 

我已经思考了一段时间。我知道 = 是用来定义的,== 用于检查是否相等,!= 表示不相等,但是 === 是什么意思呢?上次在谷歌上没找到。 - Teun Pronk
=== 表示严格相等。5==="5" 的结果为 false。通常,可以通过类型转换来解决问题,但如果您希望值具有精确的数据类型和值,则可以使用 ===。这可能会有所帮助 http://www.w3schools.com/js/js_comparisons.asp - Kumsal Obuz

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');
    }


0

您可以通过以下方式检查字符串是否存在:

$(".className").replace(/(^|\s)yourTextHere\S+/g, " ");


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接