05.05.2018 03:47:42 pm
Одно время я писал редактор текста для TextArea на JavScript, в редакторе была замена URL на BBcode URL, то есть, при вводе, например
Для этого я использую следующей материал:
- Как проверить: Есть ли подстрока в строке на JavaScript
- Как разбить строку в массив на JavaScript
- Удалить пробелы в конце строки на JS
- Добавление контента при помощи JavaScript (Не замена)
И так, допустим мы имеем такой TextArea (в нем и дут происходить замена автоматом):
Для него пишем сценарий для поиска и замены URL в BBcode URL:
Катко расскажу, что тут происходит: после того, как пользователь нажмет клавишу "Пробел", сценарий получает содержимое TextArea и разбивает полученную строку в массив, разделителем является пробел между словами. После, в цикле проверяется каждое слово на первые несколько символов, если первые символы совпадают с
Возможно будет интересно:
- Редактор текста в TextArea на JavaScript
- Замена первой буквы на заглавную на JavaScript
https://danfa.net
, строка автоматически заменялась на [url=https://danfa.net]https://dnfa.net[/url]
. Сейчас я попытаюсь воспроизвести эти замену.Для этого я использую следующей материал:
- Как проверить: Есть ли подстрока в строке на JavaScript
- Как разбить строку в массив на JavaScript
- Удалить пробелы в конце строки на JS
- Добавление контента при помощи JavaScript (Не замена)
И так, допустим мы имеем такой TextArea (в нем и дут происходить замена автоматом):
<textarea id="textArea" cols="70" rows="8"></textarea>
Для него пишем сценарий для поиска и замены URL в BBcode URL:
document.getElementById('textArea').addEventListener('keydown', function(e) {
if (e.keyCode == 32) {
var word = this.value.split(' '), content = '';
for (var i = 0; i < word.length; i++) {
if (word[i] == '') {
continue;
};
if (word[i].indexOf('http://') == 0 | word[i].indexOf('https://') == 0) {
word[i] = '[url=' + word[i] + ']' + word[i] + '[/url]';
};
content += word[i] + ' ';
};
content = content.replace(/(\s*)$/, '');
this.value = content;
};
});
Катко расскажу, что тут происходит: после того, как пользователь нажмет клавишу "Пробел", сценарий получает содержимое TextArea и разбивает полученную строку в массив, разделителем является пробел между словами. После, в цикле проверяется каждое слово на первые несколько символов, если первые символы совпадают с
http://
или https://
, то строка заменяется на строку в BBcode URL. Все слова составляются в том же порядке, что были введены пользователем в поле и возвращаются обратно в TextArea. Вот собственно и все.Возможно будет интересно:
- Редактор текста в TextArea на JavaScript
- Замена первой буквы на заглавную на JavaScript
- Жалоба