Javascript正则表达式正面看后面

时间:2017-06-01 18:48:09

标签: javascript

给出字符串:x = 'it is 2.5i in'
这段代码有什么问题x.replace(/(?<=\d+\.\d+)i/gi,'')
 结果是“它是2.5英寸”?

代码在chrome上出现控制台错误。

  

正则表达式无效:/(?&lt; = \ d +。\ d +)i /:

也就是说,代码需要使用正则表达式来删除字母“i”,只要它在一个数字之后跟一个点后跟一个数字。 THX

3 个答案:

答案 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'