如何检查字符串的一部分并接受它之后的任何内容


How to check portion of a string and accept anything after it?

我很难用语言表达这个问题。假设数据库中有两样东西:

-"字符串"

-"Stringify"

在PHP中,您可以使用以下内容:"SELECT*WHERE string=stri%"

这将返回数据库中的两个字符串,因为%[百分号]负责检查值是否有这四个字母[stri]并接受它们,因为其余的都无关紧要。


这不是问题所在。jQuery中是否存在类似[%]的内容?

我有以下代码。

if (ext == "jpg" || ext == "gif") {
} else {
   ext = ext + ".jpg";
}

很多时候,我的JSON可能会返回这样的内容:

图像名称jpg?1

由于jpg?1NOT等于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
相关文章: