[英]How transcribe remove number custom function Excel VBA function to Google Sheets Google Script (Javascript)
我需要將 VBA 腳本轉錄為 Javascript,但我卡在了 java 部分
主要意思是從像“textthere 123456789”這樣的文本中刪除數字
我的 VBA 代碼是:
Function RemoveNum(Txt As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "[0-9]"
RemoveNum = .Replace(Txt, "")
End With
End Function
我的 Javascript 嘗試是:
function RemoveNumbers(RemoveNumbers) {
var RemoveNumbers;
//var str = RemoveNumbers.toString();
var str = RemoveNumbers;
str.Value.replace(/[0-9]/g, '');
}
甚至:
function rn(remvnum) {
var str = remvnum;
var n = str.toString();
var res = n.replace(/[0-9]/gmi, '');
}
阻止我達到結果的是,.Replace 函數需要是字符串內容,否則將返回未定義值的錯誤,我也無法轉換為字符串,因為它返回未定義值的錯誤。
下面這個例子運行良好,因為函數的名稱作為自定義函數寫在 Google Sheet 單元格中,但我沒有實現刪除號碼的願望:
function styleHyphenFormat(propertyName) {
function upperToHyphenLower(match, offset, string) {
return (offset ? '-' : '') + match.toLowerCase();
}
return propertyName.replace(/[A-Z]/g, upperToHyphenLower);
}
有人知道我做錯了什么嗎?
提前致謝。
試試removeNumbers = removeNumbers.replace(/[0-9]/g, '');
或者設置一個新的noNums = removeNumbers.replace(/[0-9]/g, '');
比如noNums = removeNumbers.replace(/[0-9]/g, '');
您只需要return
替換后的值:
function rn(remvnum) {
//var str = remvnum;
//var n = str.toString();
var res = remvnum.toString().replace(/[0-9]/gmi, '');
return res; //Added
}
與 excel 不同,Google 表格支持 regex( re2 ) 作為內置函數。 所以,你不需要宏。 即使您想要全局替換,查找和替換菜單也適用於正則表達式。
=REGEXREPLACE(A2,"\d",)
或者
=ARRAYFORMULA(REGEXREPLACE(A2:A5,"\d",))
\\d
就是d
igit(== [0-9]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.