如何正则化冒号和空格之间的一切
How to regex everything between colon and space?
我有这个字符串
product_id:WDC WD2500YS-18S revision:6C07 size(GB):232 state: ONLINE
和我需要转换成其他任何东西,如json:
{
"product_id": "WDC WD2500YS-18S",
"revision": "6C07",
"size(GB)": "232",
"state": "ONLINE"
}
我尝试了这个/([^:]+)/g
,但不工作,因为我需要WD2500YS-18S与WDC WD2500YS-18S在一起。
您必须使用键不包含空格的事实,并提前检查后面的内容。
/([^'s:]+):'s*([^:]+?)(?='s+[^'s:]+:|'s*$)/g
此解决方案不依赖于前看或后看,并利用浏览器的内置json解析器来验证输出是否有效。它利用了键不包含空格的事实。所以([^ ]+):
会找到一个键。我们只需要将键和值用引号括起来,让内置的json解析器完成其余的工作。
var input = 'product_id:WDC WD2500YS-18S revision:6C07 size(GB):232 state: ONLINE';
console.log(JSON.parse(
'{' +
input.replace(/(^| )([^ ]+):/g,'","$2":"').substring(2) +
'"}'
));
输出:
{
product_id: "WDC WD2500YS-18S",
revision: "6C07",
size(GB): "232",
state: " ONLINE"
}
试试/([^:]+):'s?([^:]+)(?:'s|$)/g
- regex101
相关文章:
- JS中单词之间的空格
- 在php和javascript onClick之间传递带有空格的值
- 如何在城市和州代码之间用逗号将城市和州从短划线格式化为空格.(javascript)
- 突出显示jQuery中单词之间的空格
- 使用 JavaScript 删除标签之间的每个空格
- 正则表达式和 javascript:匹配数字后跟空格和大写字母之间的所有内容
- 行之间有空格会影响 JavaScript 代码的性能吗?
- 在某些情况下,“text”方法会删除单词之间的空格
- 使用正则表达式获取多个单词,单词之间留有空格
- 通过JQuery在网页上的两个字符之间放置空格
- 空格上的正则表达式匹配 - 排除多组字符之间的空格
- jquery 移动控件组之间的空格
- 当数据库值为 NULL 时,如何在 XML 标记之间插入空格
- 如何删除句点和前一个单词之间的空格
- 删除带有单词javascript的大括号之间的空格
- 什么是用于删除大写字母之间的空格的正则表达式,但在单词之间保留空格
- 删除行之间的空格
- JS 正则表达式以匹配字符串,令牌之间最多有 1 个空格
- 文本之间的空格,但文本前后不空格
- 如何使用 javascript 删除 html 标记之间的空格