проверка на вхождение строки в строке с переизбытком?
Приветсвую, извиняюсь если вопрос покажеться ламерским, но никак не пойму как .indexOf правильно пользоваться :(
у меня есть строки: strMsg1 = "Маша косит траву, а Дима пьет пиво"; strMsg2 = "Дима пьет пиво"; strMsg3 = "фигня какая"; strMsg1.indexOf(strMsg2) //выдает: 20 и это правильно, а вот strMsg2.indexOf(strMsg1) //выдает: -1 и это тоже логично! strMsg1.indexOf(strMsg3) //выдает: -1 но, мне нужно чтоб выдало что то типа: -20? Тоесть определить что вхождение есть, но оно длинее искомого? Вопрос как? Пока думаю как то с проверкой длины собщений и перестановкой поиграться, но может знаете более изящное решение? |
function positionOf(str1, str2) { var pos = str1.indexOf(str2); if (pos === -1) { pos = str2.indexOf(str1); if (pos === -1) { return null; } pos = -pos; } return pos; } var strMsg1 = "Маша косит траву, а Дима пьет пиво"; var strMsg2 = "Дима пьет пиво"; alert(positionOf(strMsg1, strMsg2)); // 20 alert(positionOf(strMsg2, strMsg1)); // -20 alert(positionOf("Test", strMsg1)); // null |
да, спасибо, а что значит "==="?
|
Цитата:
alert(0 == '0'); // не строгое, покажет true alert(0 === '0'); // строгое, покажет falseСтрогое равенство, работает быстрее, так как не заставляет интерпретатор использовать приведение типов |
О, что то новенькое, понял, спасибо
|
Часовой пояс GMT +3, время: 13:44. |