#jquery #regex
#jquery #регулярное выражение
Вопрос:
Как мне использовать jQuery для замены любых строк текста, начинающихся с / и более 8 символов (строка текста заканчивается на первом пустом месте), ссылкой, ведущей на imugr.com/the строка текста здесь?
Например:
/sA9xK4D
будет преобразовано в <a href="imugr.com/sA9xK4D">/sA9xK4D</a>
/Pq9xV39x a,#xK2F
будет преобразовано в <a href="imgur.com/Pq9xV39x">/Pq9xV39x</a> a,#xK2F
Этот код не работает; он говорит, что undefined не является функцией.
content = $("body").replace(/(/[a-zA-Z0-9]{1,8})(?=s)/g, '<a href="http://www.imgur.com$1" target="_blank">$1</a>');
$("body").html(content)
Комментарии:
1. Я думаю, вам нужно регулярное выражение.
2. Для этого вам не нужен jQuery. В JavaScript есть собственные регулярные выражения.
3. Извините, я с этим не знаком.
4. более 8 символов (8 или более). также я добавил код к вопросу
Ответ №1:
Следующий должен соответствовать вашим потребностям:
(/[a-zA-Z0-9]{8,})(?=s)
Заменить на <a href="industus.com$1">$1</a>
Визуализация с помощью Debuggex
Демонстрация на RegExr
Как использовать это в JavaScript (пример):
// initial content
var content = document.getElementById("init").innerHTML;
// replace using the "global" flag
// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
content = content.replace(/(/[a-zA-Z0-9]{8,})(?=s)/g, '<a href="industus.com$1">$1</a>');
// set replaced content in other div
document.getElementById("replaced").innerHTML = content;
Демонстрация на JSFiddle
Ответ №2:
Комментарии:
1. Как мне использовать это в jQuery?
Ответ №3:
попробуйте этот пример:
var re = //[wd]{8,}/;
var string = "this is my string /aZ2scXo35676";
var link = string.match(re)[0]; // will match "/aZ2scXo35676"
var result = string.replace(re, TEMP.replace(/[AAA]/g, link[0]))
// result will equal 'this is my string <a href="industus.com/aZ2scXo35676">/aZ2scXo35676</a>'
Комментарии:
1. Вопрос в том, чего вы пытаетесь достичь с помощью окончательного тега? для чего именно вы пытаетесь использовать jquery?
2. Боковое примечание:
w
уже содержитсяd
в нем (w
is[0-9A-Za-z_]
,d
is[0-9]
), поэтому[wd]
является немного избыточным и может быть просто заменено наw
.