作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要替换 excel 公式字符串中的 columnNumber 数字。
我已经尝试编写一个正则表达式 (/[A-Z]\d+/g)
来从公式字符串中获取带有数字的 columnNumber,这似乎无法正常工作,因为它只是检测 columnNumber (E2~D2)不是仅替换该 columnNumber-digit 的数字,而是替换整个 columnNumber。
var formula = "=IF(E2<(D2*0.004),100,IF((100-(((E2-(D2*0.004))/(D2*0.004))*100))<0,0,(100-(((E2-(D2*0.004))/(D2*0.004))*100))))";
var regex = /[A-Z]\d+/g;
for(var i=2; i<=3; i++)
console.log(formula.replace(regex,i)
我需要这个
/**
=IF(E2<(D2*0.004),100,IF((100-(((E2-(D2*0.004))/(D2*0.004))*100))<0,0,(100-(((E2-(D2*0.004))/(D2*0.004))*100))))
=IF(E3<(D3*0.004),100,IF((100-(((E3-(D3*0.004))/(D3*0.004))*100))<0,0,(100-(((E3-(D3*0.004))/(D3*0.004))*100))))
**/
但是得到这个
/**
=IF(2<(2*0.004),100,IF((100-(((2-(2*0.004))/(2*0.004))*100))<0,0,(100-(((2-(2*0.004))/(2*0.004))*100))))
=IF(3<(3*0.004),100,IF((100-(((3-(3*0.004))/(3*0.004))*100))<0,0,(100-(((3-(3*0.004))/(3*0.004))*100))))
**/
最佳答案
我不太确定,是否要替换 [A-Z] 之后的数字。如果是这种情况,这可能会帮助您这样做:
var formula = "=IF(E2<(D2*0.004),100,IF((100-(((E2-(D2*0.004))/(D2*0.004))*100))<0,0,(100-(((E2-(D2*0.004))/(D2*0.004))*100))))";
var regex = /([A-Z])\d+/g;
for(var i=2; i<=3; i++){
console.log(formula.replace(regex,'\$1'+i));
}
此图显示了表达式的工作原理:
关于javascript - 用于仅匹配和替换 excel 公式字符串中的列号数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55979509/
我是一名优秀的程序员,十分优秀!