我有一个 javascript 函数,它查找特定格式的字符串,然后将其转换为链接
<script>
var re = /Ticket-([0-9]*?(?=-)-[0-9]*)/;
var str = 'ASD Ticket-492-367 - Make my day.';
t = str.replace(re,'<a href="http://myworld/ticket/$1">$0</a>')
document.write(t);
</script>Run Code Online (Sandbox Code Playgroud)
它查找 Ticket-[somenumbers]-[somenumbers] 并将其转换为链接。现在,当我在在线 JS 编辑器中单独运行它时,它就可以工作了。但是,当我在脚本中运行它并查看页面时,它确实将字符串转换为列表,但在页面上打印出文字 $0 而不是其值。我的 Javascript 是否正确,或者我的脚本中是否有其他内容可能导致错误的结果。一如既往,我们感谢任何帮助。
Javascript 用作$&整个匹配的占位符,而不是$0 $number仅用作括号中捕获组的占位符。请参阅MDN。
var re = /Ticket-([0-9]*?(?=-)-[0-9]*)/;
var str = 'ASD Ticket-492-367 - Make my day.';
t = str.replace(re,'<a href="http://myworld/ticket/$1">$&</a>')
document.getElementById('result').innerHTML = t;Run Code Online (Sandbox Code Playgroud)
<div id="result"></div>Run Code Online (Sandbox Code Playgroud)