var g="#哈哈#,这话笑#死人#了"
var re = new RegExp("#([^#].)#", "ig")
var te=g.replace(re, "#<a href=\"?key=$1\">$1</a>#")如上面代码,将##包含的文字变成有链接的关键字。因为编码是utf-8的,所以链接中的文字需要转码。即"#<a href=\"?key=$1\">$1</a>#" 中的$1需要转码。如果我使用 "#<a href=\"?key="+encodeURIComponent("$1")+"\">$1</a>#"),转换的并不是哈哈或者死人两词而是$1(我想过使用re.test(g),再取出定义变量赋值RegExp.$1,这样不循环的情况下只能正确转换第一个)请教高手,在不改变 var te=g.replace(re, "#<a href=\"?key=$1\">$1</a>#") 基本格式的情况下,怎么才能对$1进行转码呢?
var re = new RegExp("#([^#].)#", "ig")
var te=g.replace(re, "#<a href=\"?key=$1\">$1</a>#")如上面代码,将##包含的文字变成有链接的关键字。因为编码是utf-8的,所以链接中的文字需要转码。即"#<a href=\"?key=$1\">$1</a>#" 中的$1需要转码。如果我使用 "#<a href=\"?key="+encodeURIComponent("$1")+"\">$1</a>#"),转换的并不是哈哈或者死人两词而是$1(我想过使用re.test(g),再取出定义变量赋值RegExp.$1,这样不循环的情况下只能正确转换第一个)请教高手,在不改变 var te=g.replace(re, "#<a href=\"?key=$1\">$1</a>#") 基本格式的情况下,怎么才能对$1进行转码呢?
解决方案 »
- 请问如果有个弹出层 我想第一次点击一个按钮让他显示 然后我点击非他的任何一个元素让他消失 当然点击它本身他不消失 用jquery或者js咋做
- 在函数中使用全局变量的问题
- js 2个数组比较找出不相同的元素返回下标
- 拖动层怎样可以实现一个虚线框效果????
- javascript 打印方向
- 去除字符串最后一个字符
- 不用弹出窗口的办法怎么将工具栏、地址栏去掉?
- 请教大牛们关于iframe的几个问题
- 请问我在一个.js文件中怎样调用其它.js文件中的资源
- 兄弟姐妹们给提供几个JAVASCRIPT的网址来着,谢谢
- jquery.blockui 怎么用
- 为什么responseXML总是为空,而改用responseText却收得到信息?
2."#<a href=\"?key=encodeURIComponent('$1')\">$1</a>#"
第1种情况是转换的$1这个字符,而不是$1所代表的值
第2种,看看就知道不行了!
var g="#哈哈#,这话笑#死人#了"
var re = new RegExp("#([^#].)#", "ig")
var te=g.replace(re, function($0, $1) {
return "#<a href=\"?key=" + encodeURIComponent($1) + "\">" + $1 + "</a>#"
})
alert(te);
var re = new RegExp("#([^#].)#", "ig")
var te=g.replace(re, function($1){
return "#<a href=\"?key="+encodeURIComponent($1)+"\">"+$1+"</a>#"
});
alert(te);
没有字母,所以i忽略大小写没有意义,用g就好了。var g = "#哈哈#,这话笑#死人#了";
var te = g.replace(/#([^#].)#/g, function($0, $1) {
return "#<a href=\"?key=" + encodeURIComponent($1) + "\">" + $1 + "</a>#"
});
alert(te);