заменяя регулярное выражение - PullRequest
0 голосов
/ 08 октября 2018

У меня есть строка, например hi Jim check this @inyekwallast:wid=834982948738924797.Я хотел бы заменить это на hi Jim check this <a href="" data="wid=834982948738924797"> @inyekwallast </a> соответственно, используя JavaScript.

Я знаю, что следует использовать замену, но я не знаю, как его использовать. Любые идеи или предложения ??

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Я не знаю, правильно ли я понимаю ваш вопрос, но вы получите необходимые детали с этим RegEx:

(@\w*)

будет соответствовать '@something' и

(?!:wid=)\d{18} or (?!:wid=)\d*

будет соответствовать виду (первый, если ровно 18 цифр, второй, если вы не знаете количество цифр).Я думаю, что вы можете выяснить все остальное самостоятельно.В противном случае не стесняйтесь спрашивать.

РЕДАКТИРОВАТЬ: Перейти с ответом @ Star_Man

0 голосов
/ 08 октября 2018

Попробуйте это.

var input_str = 'hi Jim  check this  @inyekwallast:wid=834982948738924797';
var output_str = input_str.replace(/(@\w+):(wid=\d+)/g,  '<a href="" data="$2"> $1 </a>');
console.log(output_str);

Вы можете увидеть в консоли

//hi Jim  check this  <a href="" data="wid=834982948738924797"> @inyekwallast </a>

Если вы замените весь документ, вы можете использовать следующий код ...

 <script>
    document.body.innerHTML = do_links(document.body.innerHTML);
    function do_links(body) {
        return body.replace(/(@\w+):(wid=\d+)/g,  '<a href="" data="$2"> $1 </a>');
    }
 </script>
...