javascript - 正则表达式用字符串中的html标签替换字符

标签 javascript regex

我收到了需要用输入标记替换的正则表达式单词。但是当我添加 html 时,它读取为纯字符串。
这是我的字符串:“你好,我的名字是/# Ann #/。我为/# IStaff#/工作,你能给我回电话吗”。我哪里做错了?

editModalText() {
  const { modalMessage } = this.state
  let regex = /\/#(.*?)#\//g
  let replaced = modalMessage.replace(regex, '<input type="text">')
  return replaced
}

<div>{this.editModalText()}</div>

最佳答案

这是因为它一个普通字符串。

如果您想将 JSX 语法混合到模板中,您将必须完全改变您的方法。

例如,构建 tokenizer这会将您的字符串转换为数组,例如:

[
    "Hello, my name is ",
    "/# Ann #/",
    ". I'm working for ",
    "/# IStaff #/",
    ", could you please call me back"
]

然后循环它,并将原始字符串或适当的 JSX 元素插入新数组,最后返回该数组。

关于javascript - 正则表达式用字符串中的html标签替换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55257803/

相关文章:

c# - 正则表达式匹配不匹配的内容

javascript - JS - 检查字符串是否只包含 0

javascript - 字符类 Regex Firefox 中的范围无效

javascript - Impress.js 和 AngularJS Controller

javascript - 在弹出窗口中成功登录 Paypal 后,将重定向 url 参数传回主窗口

javascript - 嵌入可自动下载的 pdf

javascript - 一个奇怪的正则表达式问题

javascript - 鼠标悬停时,更改图像的不透明度并覆盖文本

javascript - 从 Ember 中的 Controller 操作返回一个 promise ?

regex - 包含字母、数字和破折号的正则表达式,但没有前导或尾随破折号