首页 > 解决方案 > 无法读取 null、javascript 的属性“长度”。检查给定的字符串是否包含字母:p & t

问题描述

我正在尝试调试我的 JS 迷你项目。其中一些显示:

未捕获的类型错误:无法在任务(xx)处读取 null 的属性“长度”

这些迷你项目有效,但我想删除所有错误。

这个任务是关于:检查给定的字符串是否包含相等数量的 p 和 t。

我关注了该错误的消息,据我所知,如果变量的长度为 null 或 0,这意味着这是未定义的并且无法验证。所以,不成功,我尝试使用这段代码:

if (p < 0 || t< 0) 
or 
if (task55word == null)

基本代码在这里:

task55 = () => {
  const task55word = document.getElementById("task55").value;
  const task55ans = document.getElementById("task55ans")
  const wordP = task55word.toLowerCase().match(/p/g);
  const wordT = task55word.toLowerCase().match(/t/g);
  const p = wordP.length;
  const t = wordT.length;
  if (p == t) {
 task55ans.textContent = 'equal';
  } else {
    task55ans.textContent = 'not equal';
  }
};

我做错了什么?

标签: javascripttypeerrorvariadic-functionsstring-length

解决方案


试试这个代码。如果没有匹配则match返回。null

task55 = () => {
  const task55word = document.getElementById("task55").value;
  const task55ans = document.getElementById("task55ans");
  const wordP = task55word.toLowerCase().match(/p/g) || "";
  const wordT = task55word.toLowerCase().match(/t/g) || "";
  const p = wordP.length;
  const t = wordT.length;
  if (p == t) {
    task55ans.textContent = 'equal';
  } else {
    task55ans.textContent = 'not equal';
  }
};

推荐阅读