![](/img/trans.png)
[英]Why is my jQuery text.replace() function skipping some characters in strings
[英]Can I use the part of my regexp expression in the second part of text.replace function?
假设我有一个包含10km的文本,并且我想将其转换为m:
var sample = "100km"
sample = sample.replace(/(\d)+(km)/g,(d * 1000).toString() + "m")
这是行不通的,因为我认为regexp无法将“ d”识别为该字符。 有没有解决的办法? (我想使用文本中找到的“ 100”,而且,它可能在文本中出现多次,例如“ 100m 10m”,等等。)
您可以将String#replace
与回调一起使用,并进行计算:
sample = '123.456km';
sample = sample.replace(/\b(\d+(?:\.\d+)?)k(?=m)/g, function($0, $1) { return parseFloat($1)*1000; } );
//=> 123456m
您想要避免前瞻的OR:
sample = sample.replace(/\b(\d+(?:\.\d+)?)km/g, function($0, $1) { return parseFloat($1)*1000+'m'; } );
AFAIK,您无法在替换字符串中进行计算。 也就是说,在您的情况下,您可以简单地添加三个0
:
sample.replace(/(\d+)km/g, "$1000m")
$1
表示第一个捕获组,即(\\d+)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.