Мне было трудно сформулировать этот вопрос. Допустим, у вас есть две вещи в базе данных:
- "String"
- "Stringify"
В PHP вы используете это: "SELECT * WHERE string = stri%"
Это вернет обе строки в базе данных, потому что % [процентный знак] является ответственным за проверку того, имеют ли эти значения эти четыре буквы [stri] и принимают их, поскольку остальные не имеют значения.
Это не вопрос. Есть что-то вроде этого [%] в jQuery?
У меня есть следующий код.
if (ext == "jpg" || ext == "gif") {
} else {
ext = ext + ".jpg";
}
Много раз мой JSON мог возвращать что-то вроде этого:
nameofimage. JPG? 1
Это игнорируется, потому что jpg? 1 НЕ равен jpg, но он все еще является jpg. Вот почему я спрашиваю... Есть ли что-нибудь, что может быть использовано для проверки только первых трех букв расширения и игнорирования остальных?
Что-то вроде этого:
if (ext == "jpg%" || ext == "gif%") {
//Do nothing, it 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
0
, так как он хочет, чтобыjpg
находился в начале расширения.