Строка заменяет логику

1

Я пытаюсь построить функцию, которая получает строку с этим форматом:

"привет, господин" **

* Может быть в любом месте строки.

Он должен вернуться:

<span>hello wor</span><input type='text'></input>

Таким образом, строка может быть "hel ** wor * d" также

и возвращение должно быть:

<span>hel</span><input type='text'> <span>wor</span><input type='text'><span>d</span>

Я мог бы сделать это легко с помощью цикла на каждом символе, но я ищу более элегантные решения.

Я думаю, что это можно было бы решить с помощью регулярного выражения, и с помощью замены я получил "*":

var text = "hello wor**";
text.replace(/\*+/g, "<input type='text'></input>");

Я еще не нашел способ захвата оставшегося текста для

<span>
Теги:

3 ответа

1
Лучший ответ

Вы не используете результат функции replace. Попробуй это:

var text = "*hel** wor*d*";
var element = text.split(/\s*\*+\s*/g);
element = "<span>"+ element.join("</span><input type='text'><span>") + "</span>";
element = element.replace(/<span><\/span>/g, "");

console.log(element);
  • 0
    спасибо за ваш ответ, я отредактировал вопрос, чтобы уточнить некоторые моменты.
  • 0
    @AlexTakitani в этом ответе просто отсутствует "<span>" во втором параметре замены и + "</ span>" в конце работы
Показать ещё 2 комментария
1
'hello wor**'.replace(/\*+/g, "<input type='text'></input>");

Это возвращает hello wor. Все, что вам нужно сделать, это конкатенация строки с остальными данными, которые вы хотите, например:

var text = "hello wor**";
text = '<span>' + text.replace(/\*+/g, '') + '</span><input type=\'text\'></input>';
  • 0
    спасибо за ваш ответ, я отредактировал вопрос, чтобы уточнить некоторые моменты.
0
<html>
  <head>
  </head>
  <body>
    <span id="hi">hello wor**</span> 
  </body>
</html>

Я использую jquery в этом

$( document ).ready(function() {
        var texty = $('#hi').text();

        $('#hi').replaceWith(texty.replace(/\*+/g, "<input type='text'></input>"))
    });
  • 0
    спасибо за ваш ответ, я отредактировал вопрос, чтобы уточнить некоторые моменты.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню