兩個字串是否存在相同部分的比較
阿新 • • 發佈:2019-01-28
需求:使用者名稱同密碼不能存在區域性相同。例如
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;
}
返回一個數組,其中的值代表每個重疊部分。無值表示無重疊部分,並已做去重處理。