正则表达式替换键,括号中的值
Regexp to replace key, value in brackets
>我必须用一些括号的内容匹配/替换字符串。所以,像这样:
var str = '_(foo, bar)'
应该产生如下对象:
var obj = {foo: 'bar'}
我用这个正则表达式/[a-z]+/g
试过了,但没有成功!
我需要的是这样的函数:
var obj = {};
'_(foo, bar)'.replace(/[a-z]+/g, function (match, key, value) {
obj[key] = value || key;
});
我的正则表达式技能真的很有限,我不知道如何做到这一点,是吗?
var obj = {};
'_(foo)'.replace(/'(([a-z'd]+),*'s*([a-z'd]+)*')/g, function (match, key, value){
obj[key] = value || key;
});
console.log(obj);
输出
{ foo: 'foo' }
您可以在此处查看对正则表达式的说明 http://regex101.com/r/jG1sY6
首先,这个正则表达式是错误的:
/[a-z|'d]+/g
它不会执行您认为它正在执行的操作,因为它也与文字管道字符匹配。
它应该用作:
/[a-z'd]+/g
或者干脆
/''w+/g
您的代码可以是:
str = '_(foo)';
obj = {};
str.replace( /([a-z'd]+)(?:'s*,'s*([a-z'd]+))?/, function (m, k, v) {
obj[k] = v||k; return m });
console.log(obj); // Object {foo: "foo"}
相关文章:
- 如何用正则表达式替换特定的JavaScript注释
- 如何在单个正则表达式中替换多个值
- 用特定的javascript正则表达式替换每个单词
- 字符串替换正则表达式,开头为空格
- 用Javascript实时替换正则表达式
- 用 javascript 替换正则表达式中的部分文本
- JavaScript 替换正则表达式而不是全局
- 字符串替换正则表达式不起作用
- JavaScript - 替换/正则表达式以格式化论坛中的引号
- Javascript替换-正则表达式
- 用Javascript替换正则表达式转义$to$
- JS替换正则表达式,但在输出中使用部分表达式,如变量
- Javascript替换正则表达式不按预期工作
- 如何在Javascript中忽略/允许多个换行符替换正则表达式
- 传递变量来替换正则表达式函数
- 字符串用正则表达式替换正则表达式字符类
- 如何用匹配长度的$ string替换正则表达式匹配
- 用提示/回调UI替换正则表达式
- UltraEdit查找并替换正则表达式
- 无法用javascript替换正则表达式