1

我正在尝试验证我的代码。

这是一个没有 0xa 的正则表达式检查:

在此处输入图像描述

正如您在某些有返回字符的地方看到的那样,正则表达式不匹配 bc 0xa 用于返回字符。

这是一个包含 0xa 的正则表达式检查:

在此处输入图像描述

如您所见,它全部包含在内。

简而言之,我的 .js 包含以下字符:

[\x0a\x20-\x7e]

但是我担心为什么它有时会使用 return 作为:

\\ the other return character ( have not verified yet )

有时它使用返回作为:

\x0a

有关的

http://en.wikipedia.org/wiki/ASCII

4

1 回答 1

0

我很惊讶它看起来像是将行组合在一起,但它与您的正则表达式中的星号有关。将您的正则表达式更改为[\x20-\x7e]+. 使用加号(一个或多个匹配项)而不是星号(零个或多个匹配项)我认为您会得到预期的结果。

如果您想查看正则表达式的 inputText 字段中的内容,请在浏览器中打开控制台并运行document.getElementById('inputText').value.replace(/[^\x20-\x7e]/g,function(a){‌​a = a.charCodeAt(0).toString(16); return '\\u0000'.slice(0,6-a.length) + a;});,您将获得字符串的真实表示。

漂亮的印刷品:

document.getElementById('inputText').value.replace(
  /[^\x20-\x7e]/g,
  function (a){‌
    ​a = a.charCodeAt(0).toString(16);
    return '\\u0000'.slice(0,6-a.length) + a;
  }
);
于 2012-09-09T01:55:11.540 回答