给出字符串:x = 'it is 2.5i in'
这段代码有什么问题x.replace(/(?<=\d+\.\d+)i/gi,'')
结果是“它是2.5英寸”?
代码在chrome上出现控制台错误。
正则表达式无效:/(?&lt; = \ d +。\ d +)i /:
也就是说,代码需要使用正则表达式来删除字母“i”,只要它在一个数字之后跟一个点后跟一个数字。 THX
答案 0 :(得分:1)
使用捕获:
x = 'it is 2.5i in';
x = x.replace(/(\d+\.\d+)i/gi,'$1');
console.log(x)
答案 1 :(得分:0)
另一个解决方案:
x.replace(/(\d+\.\d+)i/gi,'$1')
答案 2 :(得分:0)
你可以使用以下正则表达式删除字母“i”,只要它是一个数字后跟一个点后跟一个数字。
var x = 'it is 2.5i in';
var y = x.replace(/(\d+)(.)(\d+)(i)/, "$1$2$3");
$ 1,$ 2和$ 3指团体。 $ 1匹配小数点前的数字; $ 2给出小数本身的匹配; $ 3匹配小数点后面的数字 $ 4匹配角色i。
替换时我省略了$ 4,因此删除了'i'