"统一代码:15235168151332;号码:db872e8ne92;名称:浙江电气科技公司"
想要把统一代码提出来,格式就是key:value分号分隔,但key的出现有可能不按顺序,这个js要怎么写?
已解决
悬赏分:80
- 解决时间 2022-01-16 17:15
点赞 0反对 0举报 0
收藏 0
分享 0
回答5
最佳
-
selectNumber (str) { let info = '' let arr = str.split(';') for (let item of arr) { if (item.indexOf('统一代码') !== -1) { info = item break } } let keyAndVal = info.split(':') return keyAndVal[1] } selectNumber("统一代码:15235168151332;号码:db872e8ne92;名称:浙江电气科技公司") // "15235168151332"
支持 0 反对 0 举报2022-01-16 11:24
-
正则方式
const obj = "统一代码:15235168151332;号码:db872e8ne92;名称:浙江电气科技公司" .match(/(?<=^|;|:)([^:;]+)(?=$|;|:)/g) .reduce( (r, k, i, arr) => (i % 2 === 1 ? r : Object.assign(r, { [k]: arr[i + 1] })), {} ); console.log(obj) // output: {统一代码: "15235168151332", 号码: "db872e8ne92", 名称: "浙江电气科技公司"}
split方式
const obj = Object.fromEntries( "统一代码:15235168151332;号码:db872e8ne92;名称:浙江电气科技公司" .split(";") .map((str) => str.split(":")) ); console.log(obj) // output: {统一代码: "15235168151332", 号码: "db872e8ne92", 名称: "浙江电气科技公司"}
如果只是想取出统一代码
const [code] = "统一代码:15235168151332;号码:db872e8ne92;名称:浙江电气科技司".match(/(?<=(?:^|;)统一代码:)(\d+)(?=(?:$|;))/) || [] console.log("code=", code) // output: code= 15235168151332
支持 0 反对 0 举报2022-01-16 11:30
-
var res = strToObject("统一代码:15235168151332;号码:db872e8ne92;名称:浙江电气科技公司") console.log('转换结果:', res) // => {统一代码: "15235168151332", 号码: "db872e8ne92", 名称: "浙江电气科技公司"} console.log(res['统一代码']) // => 15235168151332 function strToObject (str) { var res = {} str.replace(/(.*?):(.*?)(;|$)/g, function (g, key, value) { res[key] = value }) return res; }
支持 0 反对 0 举报2022-01-16 13:03
-
"统一代码:15235168151332;号码:db872e8ne92;名称:浙江电气科技公司".match(/统一代码:([^;]+)/gi) ["统一代码:15235168151332"]
支持 0 反对 0 举报2022-01-16 14:00
-
const t = "统一代码:15235168151332;号码:db872e8ne92;名称:浙江电气科技公司"; // 要简单,一句话,用正则就能找出来 const code = (t.match(/统一代码:(.+?);/) ?? [])[1]; console.log(code); // 要正统一点,先抽取数据,再去找需要的 const model = t.split(";") .map(pair => pair.split(":")) .reduce((o, [key, value]) => { o[key] = value; return o; }, {}); console.log(model); console.log(model.统一代码);
支持 0 反对 0 举报2022-01-16 14:17