Как проверить часть строки и принять что-нибудь после нее?

0

Мне было трудно сформулировать этот вопрос. Допустим, у вас есть две вещи в базе данных:

- "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";
}

Я старался изо всех сил сказать это правильно. Надеюсь, кто-то здесь может мне помочь. Спасибо.

Теги:

2 ответа

2
Лучший ответ

Попробуйте string.contains()

if(ext.contains(".jpg") || ext.contains(".gif")) {
0

Я думаю, что метод, который вы ищете, - 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
    Возможно, вам следует проверить, что индекс равен 0 , так как он хочет, чтобы jpg находился в начале расширения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню