Vulkan
Вот как, например, должна выглядеть вторая функция: String.prototype.index = function (str) { var j = -1, c = false, L1 = this.length, L2 = str.length - 1; for (var i = 0; i < L1; i++) { if (str.charAt(0) === this.charAt(i)) c = true, j = i; if (c && i === j + L2) return j; if (c && str.charAt(i) != this.charAt(i + j)) c = false; } return j; }; К своему стыду могу сказать, что эта задача потребовала от меня много усилий, это наверно из-за рисперидона. Оставляю Вам возможность решить первую задачу и вернуть звание дурачка обратно мне. |
Зачем все так усложнять? ;)
String.prototype.sepa = function(str, sep) { return this.replace(new RegExp(str, 'g'), sep); }; alert('1 2 3 4 5'.sepa(' ', '-')); Цитата:
String.prototype.index = function(str) { return [this].join().search(str); }; alert('1 2 3 4 5'.index('4')); |
Цитата:
Цитата:
String.prototype.index = function (str) { var j = -1, c = false, L1 = this.length, L2 = str.length - 1; for (var i = 0; i < L1; i++) { if (str.charAt(0) === this.charAt(i)) c = true, j = i; if (c && i === j + L2) return j; if (c && str.charAt(i) != this.charAt(i + j)) c = false; } return j; }; var s1 = 'aababaO_o', l1 = 'aba', l2 = 'abac', l3 = 'aa', l4 = 'O_o'; alert( [ [s1.index(l1), s1.indexOf(l1)], [s1.index(l2), s1.indexOf(l2)], [s1.index(l3), s1.indexOf(l3)], [s1.index(l4), s1.indexOf(l4)] ].join('\n') ) |
monolithed
Цитата:
Всё ведь работает. |
По поводу своих вариантов - и правда забыл что в качестве параметров могут ещё и строки из нескольких символов передаваться, как время будет исправлю.
Matre, результаты работы твоей функции отличаются от результатов работы встроенной. |
Цитата:
|
Цитата:
Цитата:
|
Это.
|
Какой-то чудной у Вас браузер.
|
Вариант...
String.prototype.index = function (b) { for (var a = -1, d = this.length, c = 0; c < d; c++) { if (b.length > d) break; a++; a = b.charAt(a) === this.charAt(c) ? a : b.charAt(0) === this.charAt(c) ? 0 : -1; if (a == b.length - 1) return c - b.length + 1 } return a }; var s1 = 'aababaO_o', l1 = 'aba', l2 = 'abac', l3 = 'aa', l4 = 'O_o'; alert( [ [s1.index(l1), s1.indexOf(l1)], [s1.index(l2), s1.indexOf(l2)], [s1.index(l3), s1.indexOf(l3)], [s1.index(l4), s1.indexOf(l4)] ].join('\n') ) |
Часовой пояс GMT +3, время: 10:45. |