js 正则表达式,字符串中如何匹配id的内容?
字符串如下:`formatMessage({id:'app.settings.menu.focus'}),<FormattedMessageid="app.setting...
字符串如下:
`formatMessage({id:'app.settings.menu.focus'}),<FormattedMessage id="app.settings.perferences.save"></FormattedMessage>
id:'测试1' id="测试2"
`
想写一条正则
目标是取到id的内容,想得到两条结果:
app.settings.menu.focus
app.settings.perferences.save
而不取 测试1 和测试2 。
就是说 formatMessage({ ……}) 和 FormattedMessage…………</FormattedMessage> 包裹的也是一个限制条件。
希望大神能再指点一下,不胜感激!!!
哪位正则大神赐教下?不胜感激。 展开
`formatMessage({id:'app.settings.menu.focus'}),<FormattedMessage id="app.settings.perferences.save"></FormattedMessage>
id:'测试1' id="测试2"
`
想写一条正则
目标是取到id的内容,想得到两条结果:
app.settings.menu.focus
app.settings.perferences.save
而不取 测试1 和测试2 。
就是说 formatMessage({ ……}) 和 FormattedMessage…………</FormattedMessage> 包裹的也是一个限制条件。
希望大神能再指点一下,不胜感激!!!
哪位正则大神赐教下?不胜感激。 展开
展开全部
const regex = /(.*)(id)(:|=)(\s*\S+)(.*)/gm;
const str = `formatMessage({ id: 'app.settings.menu.focus' }),
<FormattedMessage id="app.settings.perferences.save" ></FormattedMessage>`;
console.log(str.replace(regex,'$4'))
替换即可
追问
大神,可能我问题没有描述清楚,字符串应该如下:
`上面的字符串…… id:'测试1' id="测试2"`
目标是取到id的内容,想得到两条结果:app.settings.menu.focus app.settings.perferences.save
而不取 测试1 和测试2 。
就是说 formatMessage({ ……}) 和 FormattedMessage………… 包裹的也是一个限制条件。
追答
const regex = /formatMessage\(\{id:\s?\'(.*)\'\}\).*\<FormattedMessage\s+id=\"(.*)\"\>/gm;
const str = `formatMessage({id:'app.settings.menu.focus'}),<FormattedMessage id="app.settings.perferences.save"></FormattedMessage>id:'测试1' id="测试2"`;
if (regex.exec(str) !== null) {
console.log(RegExp.$1)
console.log(RegExp.$2)
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-03-06
展开全部
/(\{.*id:\s*'(.*)'.*\})|(\{.*id:\s*"(.*)".*\})/img 可以获取{id: '...'},/<[a=zA-Z]\w*?.*?(id="(.*?)").*?>.*?<\/[a=zA-Z]\w*?>/img 可以获取 id="..."
然而你获取到了也不知道哪个是你需要的值。想一条正则两个都取到,只需要把两条正则外加()中间加'|'然后合并,即/(1)|(2)/。
然而你获取到了也不知道哪个是你需要的值。想一条正则两个都取到,只需要把两条正则外加()中间加'|'然后合并,即/(1)|(2)/。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询