将正则表达式保存的值作为数组索引传递
Passing regexp saved value as array index
我需要用<a href=...
替换[link]0[/link]
现在,链接保存在数组links
中,[link][/link]
中的数字是指向索引links
指针。
我正在尝试下一步:
txt.replace( /'[link']('d+)'['/link']/ , "<a href='" + links[ THE_INDEX ][ 0 ] + "' target='_blank'>" + ( links[ THE_INDEX ][ 1 ] || links[ THE_INDEX ][ 0 ] ) + "</a>" );
但我不知道,如何传递保存的值。你能帮我解决吗?
附言我知道我可以制作循环并使用exec()
来保存值并传递它,但我想知道,是否有可能像我上面所说的那样做。
对于更简单的期望示例
my_array = [ "data1", "data2", "data3" ];
"xxx1xxx".replace( /xxx('d+)xxx/, "my_data=" + my_array[ THE_MATCH ] ); // should be "my_data=data1"
"xxx3xxx".replace( /xxx('d+)xxx/, "my_data=" + my_array[ THE_MATCH ] ); // should be "my_data=data3"
从正则表达式匹配中获取THE_MATCH
。
找到了解决方案:
function replacer(str, p1, p2 ){
return "<a href='" + links[ p1 ] + "'></a>"
}
var newString = "XXzzzz".replace(/(X*)(z*)/, replacer)
虽然传递给replacer()
的值作为 p1,但 p2 是匹配的值。replacer()
中p
参数的数量需要作为匹配值的数量。
相关文章:
- 按最大值获取数组索引
- 删除和重用数组索引
- 警报数组索引和值
- .fadeIn .fadeOut 会导致数组索引出现奇怪的行为
- Javascript原型通用Enquries和通过数组索引分配Id
- 获取数组索引的值
- Javascript-将值与关联数组索引进行比较
- Javascript-在数组索引中循环的问题
- JavaScript - “规范化”数组索引
- 数组索引混淆
- 使用 Javascript/React.js 查找对象的数组索引
- 如何拆分数组索引
- 获取新推送元素的数组索引
- 在 javascript 中将数组索引作为参数传递
- 当对象本身存储在 JavaScript 的数组索引中时,如何打印对象的每个单独属性
- 如何使用数组索引序列
- ASP.NET/JavaScript:数组索引溢出:实体框架/LINQ
- 如何在分配给数组索引的对象上调用方法
- 使用铆钉访问数组索引.js
- 计算 Javascript 数组索引的出现次数