假设我有一个名为 options 的对象。在对象内部,我有一个名为 imageTypes 的键。我正在尝试测试 png 是否与任何一种 imageTypes 匹配。我在这里做错了什么。感谢您的输入!
var options = {
imageTypes: /\.(gif|jpe?g|png)$/i
}
if (options.imageTypes.test(image/png)) {
//do stuff
}
假设我有一个名为 options 的对象。在对象内部,我有一个名为 imageTypes 的键。我正在尝试测试 png 是否与任何一种 imageTypes 匹配。我在这里做错了什么。感谢您的输入!
var options = {
imageTypes: /\.(gif|jpe?g|png)$/i
}
if (options.imageTypes.test(image/png)) {
//do stuff
}
在调用 test 之前,您正在使用数学运算(即除法)。这将导致 RegEx 被一个数字调用,这并不能很好地工作。
如果 image 是您的变量,请删除/png
. 或者,如果您尝试比较 'image/png'(即字符串),则必须在前后输入引号。
在此处的 jsFiddle 上对其进行了测试,您可以在控制台输出中找到结果。
如果您想将“image/png”作为字符串进行测试,那么您必须更改您的正则表达式,因为它现在检查点格式的图像扩展名。
var options = {
imageType: function(pic) {
return (/^image\/(gif|jpe?g|png)$/i).test(pic);
}
};
// returns true
console.log(options.imageType('image/png'));
希望这将帮助您了解您要实现的目标:http: //jsfiddle.net/pratik136/YZ5ZD/
var options = {
imageTypes1: /\.(gif|jpe?g|png)$/i,
imageTypes2: /image\/(gif|jpe?g|png)$/i
};
if (options.imageTypes1.test('.png')
&& options.imageTypes2.test('image/png')) {
//do stuff
showResult('true');
} else {
showResult('false');
}
imageTypes1
是一个正则表达式,它将匹配一个类似的字符串.png
,同时imageTypes2
试图匹配image/png
您的代码示例中的语法错误是缺少引号image/png
,而逻辑错误是您使用了错误的正则表达式。