Javascript正则表达式占位符打印字符串而不是其值

Javascript正则表达式占位符打印字符串而不是其值,javascript,regex,Javascript,Regex,我有一个javascript函数,它查找特定格式的字符串,然后将其转换为链接 变量re=/Ticket-([0-9]*?(?=-)-[0-9]*)/; var str='ASD票证-492-367-让我开心一天'; t=str.replace(重“”) 文件。编写(t); Javascript使用$&作为整个匹配的占位符,而不是$0$number仅用作括号中捕获组的占位符。看 var re=/Ticket-([0-9]*?(?=-)-[0-9]*)/; var str='ASD票证-492

我有一个javascript函数,它查找特定格式的字符串,然后将其转换为链接


变量re=/Ticket-([0-9]*?(?=-)-[0-9]*)/;
var str='ASD票证-492-367-让我开心一天';
t=str.replace(重“”)
文件。编写(t);

Javascript使用
$&
作为整个匹配的占位符,而不是
$0
$number
仅用作括号中捕获组的占位符。看

var re=/Ticket-([0-9]*?(?=-)-[0-9]*)/;
var str='ASD票证-492-367-让我开心一天';
t=str.replace(重“”)
document.getElementById('result').innerHTML=t

Javascript使用
$&
作为整个匹配的占位符,而不是
$0
$number
仅用作括号中捕获组的占位符。看

var re=/Ticket-([0-9]*?(?=-)-[0-9]*)/;
var str='ASD票证-492-367-让我开心一天';
t=str.replace(重“”)
document.getElementById('result').innerHTML=t

尝试两次逃离美元

\\$

试着逃避美元两次

\\$

如果要匹配列表,则应使用/g使正则表达式全局化$0不获取匹配的值,$&获取匹配的值

这是一把小提琴:

编辑:显然是JSFIDLE坏了还是怎么的。我使用的HTML是:

<!DOCTYPE html>
<html>
<body>
Ticket-445-1235 - Make my day<br>
Ticket-445-1255 - Make his day<br>
Ticket-443-4356 - He's feeling lucky<br>
Ticket-443-5555 - punk<br>
</body>
</html>

票证-445-1235-让我开心
票-445-1255-让他开心一天
票-443-4356-他感到很幸运
票-443-5555-朋克
带有调整的javascript是:

window.onload = function() {
var re = /Ticket-([0-9]*?(?=-)-[0-9]*)/g; 
var str = document.body.innerHTML; 
t = str.replace(re,'<a href="http://myworld/ticket/$1">$&</a>')
document.write(t);
}
window.onload=function(){
变量re=/Ticket-([0-9]*?(?=-)-[0-9]*)/g;
var str=document.body.innerHTML;
t=str.replace(重“”)
文件。编写(t);
}

如果要匹配列表,则应使用/g使正则表达式全局化$0不获取匹配的值,$&获取匹配的值

这是一把小提琴:

编辑:显然是JSFIDLE坏了还是怎么的。我使用的HTML是:

<!DOCTYPE html>
<html>
<body>
Ticket-445-1235 - Make my day<br>
Ticket-445-1255 - Make his day<br>
Ticket-443-4356 - He's feeling lucky<br>
Ticket-443-5555 - punk<br>
</body>
</html>

票证-445-1235-让我开心
票-445-1255-让他开心一天
票-443-4356-他感到很幸运
票-443-5555-朋克
带有调整的javascript是:

window.onload = function() {
var re = /Ticket-([0-9]*?(?=-)-[0-9]*)/g; 
var str = document.body.innerHTML; 
t = str.replace(re,'<a href="http://myworld/ticket/$1">$&</a>')
document.write(t);
}
window.onload=function(){
变量re=/Ticket-([0-9]*?(?=-)-[0-9]*)/g;
var str=document.body.innerHTML;
t=str.replace(重“”)
文件。编写(t);
}

但它在cas eof$1中有效。为什么?如何区分匹配的组
$number
用于括号中的捕获组
$&
用于匹配整个regexp。作为一个有用的注释,在页面左侧有一个很棒的参考部分。如果你转到Reference->Substitution,它会实时给出操作符之间的差异和示例。但是它在cas eof$1中有效。为什么?如何区分匹配的组
$number
用于括号中的捕获组
$&
用于匹配整个regexp。作为一个有用的注释,在页面左侧有一个很棒的参考部分。如果您转到Reference->Substitution,它将实时为您提供运算符之间的差异和示例。这将在替换中添加文字反斜杠。这将在替换中添加文字反斜杠。