我在JavaScript中定义了一个函数,用于将所有可能的分隔符-
、_
、@
、#
、$
和\
都替换为有效的分隔符/
。
我的目标是将任何类似于"1394_ib_01#13568"
的字符串转换为"1394/ib/01/13568"
。
function replaceCharacters(input) {
pattern_string = "-|_|@|#|$|\u005C"; // using character Unicode
//pattern_string = "-|_|@|#|$|\"; // using original character
//pattern_string = "-|_|@|#|$|\\"; // using "\\"
//pattern_string = "\|-|_|@|#|$"; // reposition in middle or start of string
pattern = new RegExp(pattern_string, "gi");
input = input.replace(pattern, "/");
return input;
}
我的问题是当一个带有\
字符的字符串被发送到函数时,结果无效。
我尝试使用定义模式中\
的Unicode,或者使用\\\
来代替它。我还替换了模式字符串中的位置。但在任何情况下,问题都没有得到解决,浏览器返回无效结果或不同的错误,例如:
SyntaxError: unterminated parenthetical ---> in using "\u005C"
SyntaxError: \ at end of pattern ---> in using "\\"
Invalid Result: broken result in 2 Line or replace with undefined character based on input string (the character after "\" determine result)
---> in reposition it in middle or start of pattern string