我有以下对象:
{
"_id": "59f6f931d20f73000410bbd8",
"title": "Test",
"salary": "1337",
"maxSalary": "4000",
"minSalary": "1500",
"introText": "Lorem __Ipsum__ Sit Dolor Amet",
"expectText": "Lorem Ipsum Sit _Dolor__ Amet Est __Circa__."
}
在我的Vue.js应用程序中,我实现了vue-markdown
来渲染标记以显示粗体和草书字样。
我现在要实现的是,为每个__word __解析对象,并用正则表达式替换为word。
到目前为止我得到了什么:
let objJson = JSON.stringify(obj);
objJson = objJson.replace(/\_/g, '');
let jobXML = JSON.parse(objJson);
res.send(jobXML);
所以这是我的解决方法,删除" __"字符,但我没有找到任何其他资源,解释如何用我的HTML实体替换它。
我的解决方法是必需的,因为我使用/jobs
来显示我的vue应用程序中的所有作业(可以使用降价),但我还有另一个不能使用" __"但需要HTMl实体。
答案 0 :(得分:1)
这是您需要在替换电话中使用的 regex :
str.replace(/_{1,}([ a-z0-9]+)_{1,}/img, "<strong>$1</strong>")
<强>演示:强>
var str = "Lorem Ipsum Sit _Dolor__ Amet Est __Circa__.";
console.log(str.replace(/_{1,}([ a-z0-9]+)_{1,}/img, "<strong>$1</strong>"));
&#13;
答案 1 :(得分:1)
可能您可以尝试以下一种方法:
str.replace(/__(.*?)__((_+|\W+|$))/g, '<strong>$1</strong>$2')
答案 2 :(得分:0)
我认为我自己有一个可行的解决方案:
let objJson = JSON.stringify(obj);
let regexBold = /\_\_(\S(.*?\S)?)\_\_/gm;
let regexItalic = /\_(\S(.*?\S)?)\_/gm;
objJson = objJson.replace(regexBold, '<strong>$1</strong>');
objJson = objJson.replace(regexItalic, '<i>$1</i>');
let jobXML = JSON.parse(objJson);
res.send(jobXML);
对于那个问题,看到其他/更好的方法还是很高兴的!