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 了。
控制台运行代码,得到的结果
总结:
数字字符串,与数字比较,会被转换为数字,如:'80' > 0 。
包含非数字的字符串,如:'80%'。与数字比较,如:'80%' > 0。
('80%',结果是 0 )
正则表达式:
var pattern = /^\d+[%|px]$/g;
var width_str = input_configure;
pattern.test(width_str); // 检测是否样式设置是否正确,符合则设置