我想从对话框中添加一个正则表达式模式
在这个特定的例子中,我有像这样的单元格值stuff Gr=something
,我正在删除使用下面的函数工作Gr=something
的模式/(\s*Gr=).*/
我有
function upDateStrRegEx_n() {
const a = /(\s*Gr=).*/
upDateStrRegEx(a)
}
function upDateStrRegEx(text) {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sht = ss.getSheetByName("UniqueList_(ignore)");
const LR = sht.getLastRow();
const rng = sht.getRange("D2:D"+LR);
var v = rng.getValues();
v = v.map(e => [e[0].replace(text,"")])
sht.getRange(2,4,v.length,1).setValues(v)
}
但我想从对话框中设置 RegEx 模式
function replaceSubStr() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sht = ss.getSheetByName("UniqueList_(ignore)");
const Header = sht.getRange("D1").getDisplayValue();
var ui = SpreadsheetApp.getUi();
if(isRange("UniqueList_(ignore)", Header) == false) {
ui.alert('No Range Column ~~> D');
return
}
var result = ui.prompt("Enter RegEx Find Pattern for Column ~~> D",ui.ButtonSet.OK_CANCEL);
var button = result.getSelectedButton();
var text = result.getResponseText();
if(button == ui.Button.CANCEL) {
ss.toast('CANCELED');
}else if (button == ui.Button.OK && text == "") {
replaceSubStr()
}else if (button == ui.Button.OK && text != "") {
upDateStrRegEx(text)
ss.toast('Updated');
}else if (button == ui.Button.CLOSE) {
ss.toast('Closed');
};
}
但在这里
else if (button == ui.Button.OK && text != "") {
upDateStrRegEx(text)
ss.toast('Updated');
}
从对话框中设置 RegEx 时将不起作用
一切正常运行,但单元格值未更改
感谢您对此的任何帮助
Goole 表https://docs.google.com/spreadsheets/d/1ahJI6dtTeC4IdqhPhwMVxUexIhlZamKlsumwmPWnv8M/edit?usp=sharing
您需要将对话框中的文本转换为正则表达式。
} else if (button == ui.Button.OK && text != "") {
upDateStrRegEx(new RegExp(text + '.*'))
ss.toast('Updated');
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句