我正在尝试获取文本/字符串并用替代值替换字符串中的所有坐标。
例如:
This coord is [80,20] and [30,25]
应该变成:
This coord is <a href='location?x=80&y=20'>[80,20]</a> and <a href='location?x=30&y=25'>[30,25]</a>
基本上,使文本中的坐标可点击方向链接。
我已经有了我的正则表达式:
/\[\-{0,1}[0-9]{1,}\,\-{0,1}[0-9]{1,}\]/
我已经测试过它,它会选择我正在寻找的内容,但我不熟悉用正则表达式替换子字符串以及将正则表达式的结果作为替换字符串的一部分的javascript方面.
任何正确方向的指针将不胜感激:)
最佳答案
使用()
捕获坐标,然后在替换中将它们引用为$1
、$2
等。$ &
指的是整个正则表达式的匹配。
var string = 'This coord is [80,20] and [30,25]';
var newString = string.replace(/\[(-?\d+),(-?\d+)\]/g, "<a href='location?x=$1&y=$2'>$&</a>");
alert(newString);
注意,{0,1}
可以简化为?
,而{1,}
相当于+
。也不需要在正则表达式中转义 =
或 ,
,并且 \d
匹配数字。
关于javascript - 用派生字符串 JavaScript 替换字符串中的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27052621/