我有一个可以包含各种信息位的字符串,当我无法确定 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/