假设我有:
<cfscript>
arrButtons = [
{
"name" = "Add",
"bclass" = "add",
"onpress" = "addItem"
},
{
"name" = "Edit",
"bclass" = "edit",
"onpress" = "editItem"
},
{
"name" = "Delete",
"bclass" = "delete",
"onpress" = "deleteItem"
}
];
jsButtons = SerializeJSON(arrButtons);
// result :
// [{"onpress":"addItem","name":"Add","bclass":"add"},{"onpress":"editItem","name":"Edit","bclass":"edit"},{"onpress":"deleteItem","name":"Delete","bclass":"delete"}]
</cfscript>
对于每个onpress
项目,我需要从其值中删除双引号以匹配 JS 库要求(onpress 值必须是回调函数)。
如何使用正则表达式删除双引号?
最终结果必须是:
[{"onpress":addItem,"name":"Add","bclass":"add"},{"onpress":editItem,"name":"Edit","bclass":"edit"},{"onpress":deleteItem,"name":"Delete","bclass":"delete"}]
addItem、editItem和deleteItem周围没有双引号。
编辑 2012-07-13 为什么我需要这个?我创建了一个 CFML 函数,其结果是一个 JS 集合,将在许多文件中使用。jsButton 对象将用作 JS 库中可用选项的一部分。该函数的参数之一是一个结构数组(默认为 arrButtons),并且提供的参数值可以与默认值合并。
由于我们不能(在 CFML 中)在没有双引号的情况下写入onpress值,所以我必须为该值添加双引号,并将结构的(CFML)数组转换为 JSON(这只是一个字符串)并删除双引号在将其放入 JS 库选项之前。
使用 Railo,我们可以将结构声明为链接结构,以确保循环或转换具有相同的有序键(从上面的示例中, onpress始终是结构中的最新键)。有了这个链接结构和相同的键顺序,我们可以用简单的替换函数删除双引号,但当然我们不能保证每个使用 CFML 函数的程序员都不会忘记使用链接结构和键顺序与上面的示例相同