JavaScript:解析奇数字符串以获取必要的信息(RegEx)

标签 javascript regex

我正在尝试解析一个格式奇怪的字符串,该字符串存储了我正在构建的音频播放器所需的一些数据。一个例子是:

"a:14:{s:10:"dataformat";s:3:"mp3";s:8:"channels";i:2;s:11:"sample_rate";i:44100;s:7:"bitrate";i:192000;s:11:"channelmode";s:12:"joint stereo";s:12:"bitrate_mode";s:3:"cbr";s:8:"lossless";b:0;s:15:"encoder_options";s:6:"CBR192";s:17:"compression_ratio";d:0.1360544217687074952660708504481590352952480316162109375;s:10:"fileformat";s:3:"mp3";s:8:"filesize";i:7249920;s:9:"mime_type";s:10:"audio/mpeg";s:6:"length";i:302;s:16:"length_formatted";s:4:"5:02";}"

太丑了。对于我与之交互的每首歌曲,都会包含上面提供的信息类型。基本上我想要的只是“length_formatted”的值,即“5:02”。我假设我需要使用正则表达式来完成此任务,但由于没有任何经验,我不确定从哪里开始。

最佳答案

试试这个代码:

string = `"a:14:{s:10:"dataformat";s:3:"mp3";s:8:"channels";i:2;s:11:"sample_rate";i:44100;s:7:"bitrate";i:192000;s:11:"channelmode";s:12:"joint stereo";s:12:"bitrate_mode";s:3:"cbr";s:8:"lossless";b:0;s:15:"encoder_options";s:6:"CBR192";s:17:"compression_ratio";d:0.1360544217687074952660708504481590352952480316162109375;s:10:"fileformat";s:3:"mp3";s:8:"filesize";i:7249920;s:9:"mime_type";s:10:"audio/mpeg";s:6:"length";i:302;s:16:"length_formatted";s:4:"5:02";}"`

document.body.innerHTML = string.match(/length_formatted.*?(\d+:\d+)/)[1]

解释正则表达式:

/length_formatted.*?(\d+:\d+)/

length_formatted          // match the literal text
.*?                       // till the next ocurrence of
(                         // group in [1]
    \d+                       // at least one digit
    :                         // literal ':'
    \d+                       // at least one digit
)                         // end of captouring group

希望有帮助。

关于JavaScript:解析奇数字符串以获取必要的信息(RegEx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36992227/

相关文章:

javascript - 来自 CSS 和 jQuery 的意外结果

regex - Bash:如何为同一字符串的多个实例 grep 一行?

javascript - 加载可能重定向到 HTTP 的 HTTPS 图片 url

regex - Apache 使用 AliasMatch 与 WSGI 进程一起提供单页应用程序

regex - 删除 powershell 正则表达式中的括号?

使用正则表达式 c 检查 url

javascript - 附加YouTube嵌入式视频标题

javascript - Iphone 上移动网站上的文本缩小

javascript - Angular Translate 在 App.Config 中设置变量

javascript - 使用 Javascript 结合 Primefaces 和 Twitter bootstrap 启用/禁用提交按钮