我很难用语言表达这个问题。假设数据库中有两样东西:
-"字符串"
-"Stringify"
在PHP中,您可以使用以下内容:"SELECT*WHERE string=stri%"
这将返回数据库中的两个字符串,因为%[百分号]负责检查值是否有这四个字母[stri]并接受它们,因为其余的都无关紧要。
这不是问题所在。jQuery中是否存在类似[%]的内容?
我有以下代码。
if (ext == "jpg" || ext == "gif") {
} else {
ext = ext + ".jpg";
}
很多时候,我的JSON可能会返回这样的内容:
图像名称jpg?1
由于jpg?1是NOT等于jpg,但它仍然是jpg。这就是为什么我要问。。。有什么可以用来只检查扩展名的前三个字母而忽略其余字母吗?
类似这样的东西:
if (ext == "jpg%" || ext == "gif%") {
//Do nothing, it's already a jpg or a gif
} else {
ext = ext + ".jpg";
}
我尽力用正确的方式表达这一点。我希望这里有人能帮助我。谢谢。
尝试string.contains()
if(ext.contains(".jpg") || ext.contains(".gif")) {
我认为您正在寻找的方法是indexOf():
if (ext.indexOf('jpg') !== -1 || ext.indexOf('gif') !== -1) {
// true
}
然而,不仅要检查扩展名,还要检查整个文件名,这样会更干净、更安全。想象一下这个文件名:"somejpg.exe"。上面的方法会认为它是一个"jpg",因为它不是。对于这类事情,最容易使用的正则表达式是:
/'.(jpg|gif|png|bmp)$/.test('test.png'); // => true
/'.(jpg|gif|png|bmp)$/.test('test.gif'); // => true
/'.(jpg|gif|png|bmp)$/.test('hack_jpg.exe'); // => false