垂直条符号在RegExp JS中不起作用

时间:2016-11-09 18:21:59

标签: javascript angularjs regex

我想使用竖条符号" |"在我上一个RegExp中。

我正在使用AngularJS 1.5.7。 $ scope.outputValue是一个数组,我将其转换为字符串,然后实现2个不同的RegExps:

public void cashdrawerOpen(){ 
    String code2 = "1B700096FA"; // my code in hex
    FileOutputStream os = null;
    try {
        os = new FileOutputStream("LPT1:POS-58");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
      PrintStream ps = new PrintStream(os);
    ps.print(toAscii(code2));
      ps.close();
}

public StringBuilder toAscii( String hex ){
StringBuilder output = new StringBuilder();
for (int i = 0; i < hex.length(); i+=2) {
String str = hex.substring(i, i+2);
output.append((char)Integer.parseInt(str, 16));
}
 return output;

}

现在,我知道它不是世界上最干净的东西,但最后一个RegExp包括除&#34; |&#34;之外的所有键盘字符。符号。如果没有垂直条,它就能正确完成工作(它会删除字符串中最后一个字符后的任何字符)。例如。这样:

$scope.outputValue  =  $scope.outputValue.toString();
$scope.outputValue  =  $scope.outputValue.replace(/,/g, " | ");
$scope.outputValue  =  $scope
                       .replace(/[^A-Za-z0-9.+=-_\{\}/\\<>?;:"'`!@#$%^&*()\[\]]*$/, '');

成为这个:

var foo = "The quick brown fox jumps over the lazy dog   |   \ +   ! ?";

问题是,只要我在上一个RegExp中添加垂直条,替换方法就不起作用了。我之前尝试过逃避它,用#34; \&#34;符号,但它也没有用。我也尝试了其他包含所有键盘字符的RegExps,但也没有运气。有没有什么方法可以修改现有的代码,因为它已经为我做了工作,我只需要以某种方式包括垂直条?

谢谢,Nenad

0 个答案:

没有答案