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); // 检测是否样式设置是否正确,符合则设置

你可能感兴趣的:(2021-09-13-javascript - 数字字符串与数字-大小比较中的转换)