检查是不是为 Null [重复]

Posted

技术标签:

【中文标题】检查是不是为 Null [重复]【英文标题】:Checking if Null [duplicate]检查是否为 Null [重复] 【发布时间】:2014-03-24 12:52:34 【问题描述】:

这是一个非常简单的问题,但是因为我只做了一个星期的语言,所以我还没有找到答案。以下两行之间出现错误,因为Regex随机为null,但我如何检查它是否为null,所以它不会抛出错误?

var Regex = /\<span class="currency-robux">([\d,]+)\<\/span\>/
var PriceSelling = data.match(Regex)[1]

【问题讨论】:

我搜索了 null,但找不到。 2分钟前我确实搜索过。抱歉重复了。 Parsing html with Regular Expressions 获得额外积分。 @BenjaminGruenbaum:他没有解析它,而只是匹配它的一部分 - 正则表达式很好。 它在一个 for 循环中。在检查它是否为空后,假设它是,它只会转到循环中的下一项,对吧? @Bergi 怎么不使用正则表达式解析 HTML?为您已经拥有可以查询的数据结构的事物编写正则表达式似乎很愚蠢。在他的情况下,最简单的事情就是做document.querySelector(".currency-robux").textContent。 (一个额外的createDocumentFragment 行,然后查询它是否不在DOM 中)。如果class 或多个类或多个属性后面有空格,则不会发生心脏病。 【参考方案1】:

像这样:

var Regex = /<span class="currency-robux">([\d,]+)<\/span>/;
var PriceSelling = data.match(Regex);
PriceSelling = PriceSelling ? PriceSelling[1] : '';

if (PriceSelling.length < 1) 
    alert('Nothing!');

【讨论】:

感谢您修复该部分,但它在 for 循环中,并且不允许我使用 continue 语句跳过该 ID,因为它是“非法的”。我该如何解决? @user3341815 而不是&lt; 1,只需使用&gt; 0【参考方案2】:

您可以分两步完成:

var result = data.match(Regex);
var PriceSelling = result != null ? result[1] : undefined;

或使用 OR 运算符将空数组用作默认结果:

var PriceSelling = (data.match(Regex) || [])[1];

【讨论】:

以上是关于检查是不是为 Null [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C#如何检查null。 (value为null)或(null == value)。我们可以使用`is`运算符而不是==运算符[重复]

检查可为空的布尔值是不是为空[重复]

Function.keys 检查变量数据是不是存在[重复]

检查html元素是不是存在的正确方法[重复]

用 typeof 真正检查是不是未定义 [重复]

C# 如何检查空值。 (值为空)或(空 == 值)。我们可以使用`is`运算符而不是==运算符[重复]