search

Home  >  Q&A  >  body text

javascript - 正则匹配替换问题

var str="测试~![闭嘴][憨笑]";需要将内容中的带[]中的字符串全部替换为:文字:的这种格式。实现效果为
var str="测试~!:闭嘴::憨笑:";有大神指点下么 感谢
其实是处理后端传过来的中文表情转化成可解析的图片表情的 感谢大家的答案 非常有帮助

大家讲道理大家讲道理2774 days ago361

reply all(5)I'll reply

  • PHP中文网

    PHP中文网2017-04-11 09:48:41

    不知道你对文字的定义是什么,姑且当成是非空且不含[]字符的任意字符吧。
    只匹配成对的[],不匹配单独字符或者中间没有文字的配对。

    "测试~![闭嘴][憨笑]][]".replace(/\[([^\[\]]+)\]/g,':$1:')
    // result:
    // "测试~!:闭嘴::憨笑:][]"

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-11 09:48:41

    哪里有 [文字] ?

    reply
    0
  • 高洛峰

    高洛峰2017-04-11 09:48:41

    str.replace(/[\[\]]/g,":")

    reply
    0
  • PHP中文网

    PHP中文网2017-04-11 09:48:41

    "测试~![闭嘴][憨笑]".replace(/[\[\]]/g,':')

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-11 09:48:41

    "测试~闭嘴".replace(/[[\u4e00-\u9fa5]+/g,":$&:")
    
    ":测试:~:闭嘴:"

    reply
    0
  • Cancelreply