Dav*_*och 3 javascript regex replace autocomplete
嘿有SO的天才!
这是一个自动完成插件,需要接受数据作为数组数组并使用格式字符串(或正则表达式)进行转换.格式字符串可以是任何格式.
var dataArray = [ ["data1-1", "data1-2", "data1-3"], ["data2-1", "data2-2", "data2-3"],... ];
var format = "<li>{0} <br /> -- <small> {1}, {2}</small></li>";
// alternate formats could be:
// "<li>{0}</li>"
// "<a href="{0}" title="{2}">{1} ({2})</a>"
// etc...
function fillAutocomplete(datum,format){
// do some magic here...
// return "<li>data1-1 <br /> -- <small> data1-2, data1-3</small></li>";
}
Run Code Online (Sandbox Code Playgroud)
以下想法有效..但我想看看是否会更快......
var datum = data[0],
html="<li>\{0\} <br /> -- <small> \{1\}, \{2\}</small></li>";
for(var i=0,l=datum.length;i<l;++i){
var reg = new RegExp("\\{"+i+"\\}");
html=html.replace(reg,datum[i]);
}
Run Code Online (Sandbox Code Playgroud)
我对如何处理这个问题的新想法持开放态度.
Jas*_*att 11
查看John Resig的"搜索并不替换",看看您是否可以将回调函数传递给myString.replace(..).
var datum = data[0];
var html="<li>{0}<br /> -- <small>{1}, {2}</small></li>";
var pattern = /\{(\d+)\}/g;
html = html.replace(pattern,function(match, key, value){
return datum[key];
});Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3147 次 |
| 最近记录: |