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, время: 09:03. |