2021-09-13-javascript - 数字字符串与数字-大小比较中的转换

1 调试代码:

var option = {
  'show' : true,
  'width': '80%'
};
if (typeof option['width'] != 'undeinfed' && option['width'] > 0) {
    modalobj.find('.modal-dialog').css('width', option['width']);
}

现象:发现即使设置了 width,仍然不生效。

多次调试后,才发现问题是 option['width'] > 0

option['width'] 取出来的 '80%' 是字符串(string),结果与整数一比较,就被转换为 0 了。

控制台运行代码,得到的结果

图片.png

总结:

数字字符串,与数字比较,会被转换为数字,如:'80' > 0 。

包含非数字的字符串,如:'80%'。与数字比较,如:'80%' > 0。
('80%',结果是 0 )

正则表达式:

var pattern = /^\d+[%|px]$/g;

var width_str = input_configure;

pattern.test(width_str); // 检测是否样式设置是否正确,符合则设置
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容