解析 react-mentions 包中的标记

parsing markup in react-mentions package

我正在使用 'react-mentions' 库从数据库中提及名字。但是数据格式有一种奇怪的格式。现在我想在 json 中制作这个 format.This 是我的代码:

 <MentionsInput
                                                className="comments-textarea"
                                                placeholder=""
                                                value={this.state.value}
                                                onChange={this.handleChange}
                                                onSelect={this.handleSelection}
                                                onBlur={this.handleBlur}
                                                markup={this.state.markup}
                                                autoFocus
                                            >
                                                <Mention
                                                    className="comment-user"
                                                    type="user"
                                                    trigger="cli"
                                                    data={this.state.totalImageList}
                                       
                                                />
                                            </MentionsInput>

这是数据的 onchange 函数:

handleChange(event, newValue) {
    this.setState({ value: newValue });
    console.log("got value",event.target.value)
}

我的 console.log 以这种格式显示数据:

@[bedrooom pic 5](dd246746-237f-4231-a9ae-df778a9634b4) @[bedrooom pic 4](f8c88c76-651f-4b45-83d4-8463ae76693c) @[bedrooom pic 5](dd246746-237f-4231-a9ae-df778a9634b4)

我只想将其格式化为这样的数组:

{
    "id": "dd246746-237f-4231-a9ae-df778a9634b4",
    "imageName":"bedroom pic 5 
   },

这是我对转换它的看法,不过它可以提高性能

var mystr=`@[bedrooom pic 5](dd246746-237f-4231-a9ae-df778a9634b4) @[bedrooom pic 4](f8c88c76-651f-4b45-83d4-8463ae76693c) @[bedrooom pic 5](dd246746-237f-4231-a9ae-df778a9634b4)`
mystr=mystr.substring(1)
var arry=mystr.split(" @")
var returnArr=[]
var obj={}
for(var a of arry){
  var value=a.substring(
    a.lastIndexOf("[") + 1, 
    a.lastIndexOf("]"))
  var key=a.substring(
    a.lastIndexOf("(") + 1, 
    a.lastIndexOf(")"));
  obj[`imageName`]=value
  obj[`id`]=key
  returnArr.push(obj)
}
console.log(returnArr)