RegEx禁止字符,除非转义
RegEx disallow a character unless escaped
下面是我用来解析逗号分隔的键值对的正则表达式:
function extractParams(str) {
var result = {};
str.replace(/'s*([^=,]+)'s*='s*([^,]*)'s*/g, function(_, a, b) { result[a.trim()] = b.trim(); });
return result;
}
例如:
extractParams("arg1 = value1 ,arg2 = value2 ,arg3=uuu")
是{"arg1":"value1","arg2":"value2","arg3":"uuu"}
.
我想扩展这个函数以允许包含转义逗号、等号和转义字符本身的值。使得:
的结果extractParams("arg1 = val',ue1 ,arg2 = valu'=e2, arg3= val''ue3")
将 {"arg1":"val,ue1","arg2":"valu=e2","arg3":"val'ue3"}
.
我该怎么做呢?谢谢,Moshe。
你可以这样做:
function extractParams(str) {
var result = {};
str.replace(/'s*((?:''[,''=]|[^,''=]*)+)'s*='s*((?:''[,''=]|[^,''=]*)+)'s*/g, function(_, a, b) { result[a.trim()] = b.trim(); });
return result;
}
console.log(extractParams("arg1 = val'',ue1 ,arg2 = valu''=e2, arg3= val''''ue3"));
我建立了一个模式,甚至可能不需要转义',
逗号来区分它们。
ke y
=
,val,ue!
OKk,ey
=
val,ue
is KO
那么下面的模式将非常有效:
([^,]+)=(.+?)(?:(?=,[^,]+=)|$)
你可以在这里玩它:https://regex101.com/r/RX4RsR/2
相关文章:
- 在JavaScript中输出转义字符
- 转义符不能与innerHTML一起使用
- Rails 3.2 js.erb文件转义js
- 转义在jsp's脚本
- 当我在form_for中的text_field_tag中点击Enter时,如何禁止发出POST请求
- 使用Jinja2的JavaScript转义字符串
- 将c#视图模型转换为javascript模型时转义HTML标记
- Rails:如何在浏览器中显示动态html内容,而不会对其进行转义,也不会引起XSS攻击
- 删除单引号字符转义
- 如何使用javascript/jquery更改转义键的功能
- 包含转义符号的正则表达式
- 如何禁止使用'简明方法'使用esint
- 在RegEx(JavaScript)中正确转义变量
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- 如何转义字符串中的html实体
- Regex以转义HTML标记
- 如何禁止在纯JavaScript形式输入的表单中输入特定字符
- Javascript-转义特定字符
- RegEx禁止字符,除非转义