如果字符串包含子字符串,则发出问题

时间:2021-08-01 17:10:50

标签: javascript google-apps-script google-sheets

我想检查一个子字符串是否在一个字符串中。

该字符串来自 Google 表格的第 12 行。 子字符串来自用户插入数据的 HTML 表单。 (在下面的例子中是一个简单的字符串,它仍然不起作用。问题不是插入的数据。)

我想在检测到子字符串时显示字符串的行号。

for (var i=0; i < sheetDataRange.getValues().length; i++) {
  if (sheetDataRange.getValues()[i][11].includes("I14")) { // The string value is okay
    SpreadsheetApp.getUi().alert(i+5); // The data starts at the 5th row
  }
}

我尝试使用 contains() 函数解决该问题。 问题是一些没有“I14”的行被显示,而其他没有。 我也尝试使用 match() 函数,但它不起作用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您只需要 getValues() 一次,而不是每次遍历循环时

CREATE TABLE employees
(
    EMPLOYEE_ID  NUMBER(6) PRIMARY KEY NOT NULL,
    FIRST_NAME VARCHAR(20),
    LAST_NAME VARCHAR( 25) NOT NULL,
    EMAIL VARCHAR(25) NOT NULL,
    PHONE_NUMBER VARCHAR(20),
    HIRE_DATE DATE NOT NULL,
    JOB_ID VARCHAR2(10) NOT NULL,
    SALARY NUMBER(8,2),
    COMISSION_PCT NUMBER(2,2),
    MANAGER_ID NUMBER(6),
    DEPARTMENT_ID NUMBER(4)
);

CREATE TABLE job_history
(
    EMPLOYEE_ID NUMBER(6) PRIMARY KEY NOT NULL,
    START_DATE DATE NOT NULL,
    END_DATE DATE NOT NULL,
    JOB_ID VARCHAR2(10) NOT NULL,
    DEPARTMENT_ID NUMBER(4)
);

--Question 1
INSERT INTO employees (EMPLOYEE_ID, LAST_NAME, EMAIL, HIRE_DATE, JOB_ID, DEPARTMENT_ID)  
VALUES(176, 'Taylor', 'jasontaylor@gmail.com', '1999-AUG-31, 'SA_REP', 80);

INSERT INTO employees (EMPLOYEE_ID, LAST_NAME, EMAIL, HIRE_DATE, JOB_ID, DEPARTMENT_ID)  
VALUES(200, 'Whalen', 'justinwhalen@gmail.com', DATE '1993-06-18', 'AD_ASST', 200);

SELECT LAST_NAME, DEPARTMENT_ID, END_DATE, JOB_ID, EMPLOYEE_ID 
FROM employees;
NATURAL JOIN job_history;