在 react-mentions 包中解析标记
Posted
技术标签:
【中文标题】在 react-mentions 包中解析标记【英文标题】:parsing markup in react-mentions package 【发布时间】:2021-06-19 22:38:00 【问题描述】:我正在使用“react-mentions”库来提及数据库中的名称。但是数据格式的格式很奇怪。现在我想把它做成 json 格式。这是我的代码:
<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
,
【问题讨论】:
【参考方案1】:这是我对转换它的看法,虽然它可以提高性能
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)
【讨论】:
以上是关于在 react-mentions 包中解析标记的主要内容,如果未能解决你的问题,请参考以下文章
如何解析 .apk 包中的 AndroidManifest.xml 文件
浩哥解析MyBatis源码——Parsing解析模块之通用标记解析器(GenericTokenParser)与标记处理器(TokenHandler)