1. 程式人生 > >兩個字串是否存在相同部分的比較

兩個字串是否存在相同部分的比較

需求:使用者名稱同密碼不能存在區域性相同。例如
username:wangxiaoming
password:xiaoming123
監測到存在相同的字串‘xiaoming’,則不允許。
解決方法:
http://jsbin.com/qilayareco/edit?js,console

 String.prototype.compare=function(target,digit,rule){
    /*
     * target string 被比對的字串
     * digit number 相同部位的位數
     * rule a|w|d 
    a=.
    w=\w
    d=\d
     * 
     * */
var match = { "a": "." , "w": "\w" , "d": "\d" }[!!rule ? rule : "a"]; var reg = new RegExp("(?=(" + (!!match ? match : ".") + "{" + (isNaN(digit) ? 4 : +digit) + "}))","g"); var arr = [], ret = []; this.replace(reg, function (a, b) { arr.push(b) }); (""
+ target).replace(reg, function (a, b) { ((arr.indexOf(b) !== -1) && (ret.indexOf(b) === -1)) && ret.push(b) }); return ret; }

返回一個數組,其中的值代表每個重疊部分。無值表示無重疊部分,並已做去重處理。