来自具有可变内容的字符串的 JavaScript 子字符串

标签 javascript string substring

我有一个可以包含各种信息位的字符串,当我无法确定 GUID 在字符串中的位置时,我需要从中提取一个 GUID。

字符串的可能版本

stringVar=email:name@company.com&room:b83edd0d-fec5-4ec0-8055-60bc0d8eb4b6;

stringVar=email:name@company.com&room:b83edd0d-fec5-4ec0-8055-60bc0d8eb4b6&host=HOSTNAME;

stringVar=email:name@company.com&location=SomeCity&room:b83edd0d-fec5-4ec0-8055-60bc0d8eb4b6;

字符串有一些其他的排列,有更多或更少的字段,它总是至少包含 GUID。

我所拥有的粗略版本:

var room = str.substring(str.lastIndex(room),str.lastIndex(;))
if room.length !== 36
    var room = str.substring(str.lastIndex(room),str.lastIndexOf(&)

一定有更简洁的方法来做到这一点吗?

最佳答案

There must be a cleaner way to do this?

有 - 正则表达式。

var guid = str.match(/room:([^&]+)/);

匹配项(如果找到)将保存在 guid[0] 中,只有 guid(减去“room:”)在 guid[1] 中。

关于来自具有可变内容的字符串的 JavaScript 子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40173898/

相关文章:

javascript - Vue.js 重用过滤器

javascript - 如何使用 three.js 制作带有 3d 模型的响应式 Canvas ?

javascript - 带有过滤器的 Angular ng-options 出现无限摘要错误

c# - 如何制作带前缀的字符串类?

r - 日期转特定格式字符

java - 子字符串的验证

javascript - 如何使用 RequireJS 加载 KnockoutJS 自定义函数?

c++ - 调用 `string::c_str()` 时实际上做了什么?

删除文本中数字符比大于平均值的所有句子

带分隔符的 MYSQL 子字符串