Изменить значение в строке javascript - PullRequest
0 голосов
/ 24 марта 2020

Посмотрите в моем коде:

<div id="body"></div>

<script>
          var myName = "Leon";

          var message = "Are You Okey @Leon ?";

          if(message.search(myName) !== -1){
             var body = document.getElementById('body');
             body.innerHTML = message;
          }

</script>

Если в сообщении указано мое имя, результат будет указан в теле. Теперь я хочу сделать ссылку на свое имя. как изменить сообщение на следующий результат:

Are You Okey <a href="/link">@Leon</a> ?

Я хочу использовать реагирующий маршрутизатор .

Также мой код реакции:

const { uid, name, text, time, friend } = this.props;

        let myName = '@' + getItem('name'); // result is, eg: @Leon

        let thisMessage = text;

        if(thisMessage.includes(myName)){
            thisMessage = thisMessage.replace('@' + myName, `<a href="/link">@${myName}</a>`);
        }

        var message =
            <div className="chat-msg">
                <li>
                    {time}
                </li>
                <li>
                    {name}
                </li>
                <p>
                     {thisMessage}
                </p>
            </div>;

        return message;

мне нужно использовать, например, этот код вместо:

<Router>
      <Link to={ '/user/' + uid} className="grey">
        {myName}
      </Link>
</Router>

Но результат был такой [Object Object]

ОБНОВЛЕНИЕ: Я решил это путем редактирования следующей части:

    if(thisMessage.includes(myName)){

        var myLink =
            <Router>
                <Link to={ '/user/' + uid} className="grey">
                    {myName}
                </Link>
            </Router>;

        thisMessage = thisMessage.split(myName);
        for (var i = 1; i < thisMessage.length; i += 2) {
            thisMessage[i] = myLink 
        }
    }

Теперь все работает нормально. спасибо друзья.

1 Ответ

0 голосов
/ 24 марта 2020

Вы можете попробовать это. Сначала проверьте, содержит ли сообщение имя. Если найдено, замените имя ссылкой.

var myName = "Leon";
var message = "Are You Okey @Leon ?";

if (message.includes(myName)) {
    message = message.replace('@' + myName, `<a href="/link">@${myName}</a>`);
    document.querySelector('#body').innerHTML = message;
}
<div id="body"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...