const value = "({id:1} + {id:2}) * {id:3} + sum({id:5} + {id:6} - {id:7}) - sum({id:8} + {id:9} - {id:10}) "
怎么将{id:1},{id:2},{id:3}提取出来
const value = "({id:1} + {id:2}) * {id:3} + sum({id:5} + {id:6} - {id:7}) - sum({id:8} + {id:9} - {id:10}) "
怎么将{id:1},{id:2},{id:3}提取出来
"({id:1} + {id:2}) * {id:3} + sum({id:5} + {id:6} - {id:7}) - sum({id:8} + {id:9} - {id:10}) ".match(/(?<=id:)\d+/g).map(id => ({id}))
需求不明确,不知道你要什么规则,提供一个提取 {}
内内容的做参考
const value = "({id:1} + {id:2}) * {id:3} + sum({id:5} + {id:6} - {id:7}) - sum({id:8} + {id:9} - {id:10})"
console.log('原始字符串', value)
// => ['{id:1}', '{id:2}', '{id:3}', '{id:5}', '{id:6}', '{id:7}', '{id:8}', '{id:9}', '{id:10}']
console.log('结果', demo(value))
function demo (str) {
return str.match(/\{id:.*?\}/g)
}
兄弟,你又来了~
要覆盖所有边界情况,分两步处理
1、把字符串中的方法先去掉let str = value.replace(/\w+\(.*?\)/g, '')
2、再匹配剩下的就都是目标字符了str = str.match(/{id:\d+}/g)
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
提取一个对象出来干嘛,属实离谱。我觉得你要替换
你如果真的这么无聊。那我也能行