如何测试变量是否为Moment.js对象
How to test if a variable is a Moment.js object?
我的应用程序有一个HTML表单,其中一些输入来自后端,其他输入由用户输入(在time
输入中)。当用户更改一个值时,onChange
函数将贯穿每个输入。
从后端填充的输入被转换为moment
对象,用户输入的日期只是字符串。这意味着onChange
函数会遇到一些moment
对象和一些字符串。我需要知道哪些输入是moment
对象,哪些不是。
如果一个变量是moment
对象,建议使用什么方法进行测试?
我注意到moment
对象具有_isAMomentObject
属性,但我想知道是否有其他方法可以测试变量是否为moment
对象。
我尝试过的另一个选项是对变量调用moment
。这将string
变量转换为moment
对象,并且似乎不会影响现有的moment
对象。
Moment有一个isMoment
方法来实现这一目的。除非你知道要找什么,否则在文档中找它不是特别容易。
它首先检查instanceof
,然后失败(例如在某些子类化或跨领域的情况下),它将测试_isAMomentObject
属性。
您可以检查它是否是instanceof
时刻:
moment() instanceof moment; // true
moment()instanceof moment;
永远都是真的,因为如果你有
- 矩
- 瞬间
你总是在创造一个瞬间的物体。所以唯一的方法就是像这样检查
- moment(属性).isValid()
与@Fabien的答案非常相似,我正在检查对象是否有isValid
函数可用。
const checkMoment = (date) => {
if(!date.isValid){ // check if it's not a moment object
// do something if it's not moment object
console.log('this is not a moment object');
}
else {
// do something if it's a moment object
console.log('this is a moment object');
}
}
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何检测是否有溢出
- jQuery中是否内置了任何字符串格式化函数
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 测试索引值是否等于某个数字的倍数
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 如何测试变量是否为Moment.js对象
- 如何使用moment.js测试javascript对象是否为Date
- 如何使用Moment.JS检查当前时间是否在2次之间
- 如何检测 Moment js 是否从 CDN 加载
- 是否有一种方法可以将UTC偏移量传递给Moment UTC对象?
- 用Moment.js检查hh:mm格式是否有效
- JavaScript - Moment.js - isBetween() 方法检查时间是否落在一个范围内
- 是否有一种方法来解析使用Moment.js相对日期