JCR:逃避非法字符 - Javascript

时间:2014-01-13 07:22:44

标签: javascript jcr

我在Javascript中生成JCR路径;我需要为非法JCR字符转义每个路径项(例如,/:etc ......)。有人知道Java Text.escapeIllegalJcrChars()的Javascript实现吗?

1 个答案:

答案 0 :(得分:1)

基于此代码: (https://github.com/apache/jackrabbit/blob/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/util/Text.java

和这个单元测试 (https://github.com/apache/jackrabbit/blob/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/util/TextTest.java

这应该做同样的事情:

function escapeIllegalChars(name) {
  var illegalChars = "%/:[]*|\t\r\n";
     var buffer = "";
        for (var i = 0; i < name.length; i++) {
            var ch = name.charAt(i);
            if (illegalChars.indexOf(ch) != -1 || 
                (ch == '.' && name.length < 3)|| 
                (ch == ' ' && (i === 0 || i == name.length - 1))) {
                buffer += escape(ch);                
            } else {
                buffer += ch;
            }
        }
        return buffer;
}

您可以在以下位置查看JSBin上传递的代码和相关测试: (http://jsbin.com/eciYodo/2/edit?js,output