google-apps-script - 如果 string.match() 不匹配,为什么谷歌应用程序脚本的执行被取消?
问题描述
如果我在 Google 表格中使用以下函数,它不会返回值“未找到”。日志告诉我:“执行已取消”。
这发生在以下行:
var found = text.match(re);
如果我将 searchText 更改为“abc”,它就像一个魅力。
function example()
{
var text = "abc cba";
var searchText = "abcd";
var re = new RegExp(searchText,"g");
var found = text.match(re);
if (found === undefined) {
return "not found";
}
else {
return found;
}
}
为什么脚本执行被取消,我如何在不使用正则表达式的情况下通过使用例如text.search(re) 与match()之前的if 结合来防止这种行为?
解决方案
原因:
的返回值string.match
,
和
null !== undefined
因此,当它为 null 时,该else
语句将执行并将 null 返回给工作表。“执行取消”无关紧要,可能来自旧日志问题
解决方案:
使用 null 比较返回值。
片段:
if (found === null) {
推荐阅读
- c++ - 在编辑控件中输入无效输入时如何显示不显眼的消息
- javascript - 哪种方式更适合将函数引用发送到反应组件?
- java - 无法将资源添加到 Maven 中的 jar
- java - 使用 GridLayoutManager 和 RecyclerView 更改列数以实现自动调整屏幕
- javascript - 将顶部的 td 元素与动态添加的元素对齐
- java - 如何转换为 PostgreSQL 数字类型?
- wordpress - 如何恢复 wordpress 安装?
- java - Logback 自定义 DB Appender 超时
- python - 文本分词器模式的解释
- android - 如何将字符串(微调器)中的选定值保存到 sqlite