UNPKG

968 BJavaScriptView Raw
1// Copyright 2011 Mark Cavage, Inc. All rights reserved.
2
3/**
4 * RFC 2254 Escaping of filter strings
5 *
6 * Raw Escaped
7 * (o=Parens (R Us)) (o=Parens \28R Us\29)
8 * (cn=star*) (cn=star\2A)
9 * (filename=C:\MyFile) (filename=C:\5cMyFile)
10 *
11 * Use substr_filter to avoid having * ecsaped.
12 *
13 * @author [Austin King](https://github.com/ozten)
14 */
15exports.escape = function (inp) {
16 if (typeof (inp) === 'string') {
17 var esc = '';
18 for (var i = 0; i < inp.length; i++) {
19 switch (inp[i]) {
20 case '*':
21 esc += '\\2a';
22 break;
23 case '(':
24 esc += '\\28';
25 break;
26 case ')':
27 esc += '\\29';
28 break;
29 case '\\':
30 esc += '\\5c';
31 break;
32 case '\0':
33 esc += '\\00';
34 break;
35 default:
36 esc += inp[i];
37 break;
38 }
39 }
40 return esc;
41
42 } else {
43 return inp;
44 }
45};