javascript:比较两个字符串,跳过不同的字符

标签 javascript

现在,当它到达两个字符串之间不同的字符时,就会停止。有没有办法让它跳过不比较的字符?

var match = function (str1, str2) {
    str1 = str1.toString(); str2 = str2.toString();
    for (var i = 0; i < str1.length; i++) {
        for (var j = str1.length - i; j-1; j--) {

            document.body.innerHTML += str1.substr(i, j);

            if (str2.indexOf(str1.substr(i, j))!==  -1) {
                return str1.substr(i, j);
            }
        }
    }
    return '';
}
document.body.innerHTML += (match("/some[1]/where[1]/over[3]/here[1]", "/some[1]/where[1]/over[4]/here[1]"));

http://jsfiddle.net/92taU/3/

预期:/some[1]/where[1]/over[]/here[1]

最佳答案

这符合您的要求:

var match = function (str1, str2) {
    str1 = str1.toString(); str2 = str2.toString();
    ret=''; i=0; j=0; l=str1.length; k=0; m=0;

    while(i<l && j<l)
    {
        // If char is equal just add!
        if(str1[i]==str2[j])
        {
            ret+=str1[i];
            i++;
            j++;
        } else {
            // If it's different search next equal char...
            for(k=i;k<l;k++)
            {
                for(m=j;m<l;m++)
                {
                    if(str1[k]==str2[m])
                    {
                        // if char is found adjust indexes and break current for
                        i=k;
                        j=m;
                        k=l; // to break m for
                        break;
                    }
                }
            }
        }
    }
    return ret;
}
document.body.innerHTML += (match("/some[1]/where[1]/over[3]/here[1]", "/some[1]/where[1]/over[4]/here[1]"));

它返回:

/some[1]/where[1]/over[]/here[1]

允许不同的长度。

关于javascript:比较两个字符串,跳过不同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23819858/

相关文章:

JavaScript 库通过点击导航菜单触发

javascript - 修改元素选择部分的光标属性

javascript - 使用 AngularJS 将隐藏值传递给 JSON

javascript - PHP Pusher 事件触发不起作用

javascript - JavaScript 中 Math.pow() 在不同浏览器中的奇怪结果

javascript - 如果我手动触发,Jquery 表单提交事件将不起作用

javascript - MongoDB:单个数据库处理程序的 >5 个打开连接

Javascript双向引用问题

javascript - 使用 JavaScript 禁用 YouTube 链接?

javascript - 什么是最好的 1-1 聊天模式? (AJAX/CI/JQ)