1

我知道我可以使用帶有通配符的通配符;Google表格腳本通配符

=COUNTIF(A:A ; "*text*") 

我想運行我的代碼,如果A1包含「文本」。

A1 =「test text」

任何人都可以幫助我嗎?

回答

0

我的解決辦法:

if(test.indexOf("2,")>-1) 
{ 
    my code goes here 
    } 
0
=IF(COUNTIF(A1, "*text*"), "your code here", "Code not run: A1 doesn't contain 'text'") 

這是你在想什麼 - 公式代碼?或者你想用Google Apps Script

(有可能是一個比COUNTIF()這個更直觀地命名的功能,但它的伎倆。)

+0

我想使用谷歌Apps腳本。 – NoTolerance

3

對於谷歌Apps腳本,您可以使用正則表達式。

/.*text.*/

注意通配符使用稍有不同的正則表達式:你需要你的星號*之前,包括點.向前環繞的任何聲明,如果你的應用程序腳本硬編碼斜槓被解釋爲一個正則表達式:
COUNTIF()*text*
正則表達式:/.*text.*/

因此,一個快速腳本會看升IKE在此:

function matchText(text){ 
    try { 
     var pattern = /.*text.*/; 
     var isMatch = text.match(pattern)[0]; 
     return isMatch 
    } catch (e) { 
    return e.toString(); 
    } 
}; 

廣義自定義函數:

function matchText(text,pattern){ 
    try { 
     var isMatch = text.match(pattern)[0]; 
     return isMatch 
    } catch (e) { 
    return e.toString(); 
    } 
}; 

您仍然可以做到這一點,使用REGEXEXTRACT或REGEXMATCH,這始終是我最喜歡的本地公式。請記住在星號前使用正確的正則表達式通配符表示法:這些點:.*。或者只是使用text本身,它會自動將找到它的任何實例:

enter image description here

+0

(術語nitpick:「如果你在應用程序腳本中對它進行硬編碼,將正斜槓包圍的任何***語句***解釋爲正則表達式:'/ * text * /'」↦我認爲你的意思是***表達式***。(表達式構成聲明的一部分。)) –