解决方案 »
- getElementById只能获取到数字和英文,中文获取不到?
- 弱问:js为啥取不到值呢?
- 自动适应页面高度的框架
- 求一正则表达式的写法(在线等!~)
- 我的一个表格第一更新数据格式正确,第二次就缩回去了
- 请教各位高手:如何灰化浏览器右上方的关闭按纽啊?急在线等,谢谢
- 点击一个select里面的一个option,向另一个select添加一组option怎么实现???
- 高分请请高手!!!!!!!!!!!!!!!!!!
- 请问这段javascript为什么在有的机器上起作用,有的机器上就不行?如何修改?
- 请问样式表里能否控制td的nowrap属性
- 如何遍历对象属性并返回值?
- 为什么setInterval只执行一次?
如 传进来的字符串是 index,
匹配里面有字符 "*",和"in*",这个时候*的个数是一样的啊。但是"in*" 应该是相似度高一些。
还有 如果有 这种情况 "in*" ,"*ex",那么应默认是前面那个匹配度高一些
//if(target.indexOf("*") === -1 && orig !== target)//如匹配字符串中不包含字符 * ,并且不等于默认字符串,则路径无效
// return null;
target = target.replace(/\*{1,}/g,"(.+)");
var reg = new RegExp(target);
var arr = orig.match(reg);
if (!arr) return arr;
delete arr["index"];
delete arr["input"];
arr.shift();
return arr;
}function getRealPath(ori,str){
//var ori = "index";
/*var str = ["i*in*","*","*ndex","*dex","i*","in*","*de*","*n*dex","index"];
var str = {
"i*in*":"1_{1}_{2}",
"*":"2_{1}",
"*ndex":"3_{1}",
"i*" : "4_{1}",
"in*" :"5_{1}",
"*de*":"6_{1}",
"*n*dex":"7_{1}_{2}"
}*/
var min = -1;
var minarr = [];
var minstr ="";
var arr = [];
/*null ["index"] ["i"] ["in"] ["ndex"] ["dex"] ["in", "x"] null */
for(i in str){
if(ori === i){ //如果两个相同则直接使用
return str[i];
}
arr = similar(ori,i);
// console.log(arr);
if(!arr) continue;
if(i === "*") continue;
var arrlength = arr.length;
if(min === -1 || arrlength < min){
min = arrlength;
minarr = arr;
minstr = str[i];
continue;
}
if(min === arrlength){
for(var j = 0 ; j < min ; j++){
if(minarr[j].length === arr[j].length) continue;
if(minarr[j].length < arr[j].length) break;
min = arrlength;
minarr = arr;
minstr = str[i];
break;
}
}
}
if(min == -1){
if(str["*"]){
return str["*"].replace(/\{1\}/g,ori);
}
return "";
}
for(var x = 0;x< minarr.length;x++){
var regR = "\\{"+(x+1)+"\\}";
minstr = minstr.replace(new RegExp(regR,"g"),minarr[x]);
}
return minstr;
};