当我在某些表行/单元格上创建唯一ID时,我使用从JSON对象返回的数据来创建它们。这适用于标准字符,但是,无效的DOM字符不起作用。
我希望能够创建一个函数,将变量传递给然后返回一个已转换ID并将反斜杠添加到所有相关字符的值。
到目前为止,我有:
var wsTmpS = fncIdConversion(trim(pData.SUPP_SG_SCOPE_CODE));
在我的库函数中(有许多不同的尝试注释掉了......):
//---------------------------------------------------------
function fncIdConversion(pId ) {
//---------------------------------------------------------
// return "#" + pId.replace( /(:|\.|\[|\])/g, "\\$1" );
// pId = pId.toString();
// return pId.replace( /(:|\.|\[|\])/g, "\\$1" );
// return pId.replace(/([.*+?^$|(){}\[\]])/mg, "\\$1");
// pId = pId.replace(/([.*+?^$|(){}\[\]])/mg, "\\$1");
// pId = pId.replace(/(:|\.|\(\)\[|\])/g, "\\$1");
// pId = pId.replace(/(\(\))/mg, "\\$1");
// pId = pId.replace(/[\(\)\[\]{}'"]/mg, "\\$1");
var pattern = /[\(\)\[\]{}'"]/mg;
pId = pId.replace(pattern, "||$1");
return pId;
}
提前致谢。
答案 0 :(得分:0)
为了替换$1
(定义捕获组产生的变量),您需要使用括号()
定义该捕获组:
function fncIdConversion(pId ) {
var pattern = /([\(\)\[\]{}'"])/mg;
pId = pId.replace(pattern, "\\$1");
return pId;
}
请参阅此处的工作示例:http://regex101.com/r/zI1qG5