2016-12-08 62 views
0

我需要删除[LS],[LS] character only appears when pasted on notepad++ this data was inserted hidden and visible only on UTF-8 encoding editor。还有电话,电子邮件,传真等字符。删除隐藏的字符和特殊字符(java/javascript)

我用下面的代码:

string.replaceAll("\\p{Cntrl}", "").replaceAll("[^\\p{Print}]", ""); 

而且还更换不应该被删除的中国文字。 有没有任何方法可以删除隐藏的字符和图标字符而不删除语言字符?

+0

您可以加入更多的例子吗? – Ethan

+0

请提供更多信息。是unicode文本粘贴到记事本+ +和不正确显示?图像中突出显示的ASCII LS字符来自哪里,它们是如何产生的?可能相关:[如何在Notepad ++中编辑Unicode文本?](http://superuser.com/questions/21135/how-can-i-edit-unicode-text-in-notepad) – traktor53

+0

该信息来自电子邮件,然后用户复制整个电子邮件并粘贴到应用程序并成功保存。但是当检索数据时,我们得到了异常。直到我发现当我在具有UTF-8编码的notepad ++上复制数据时,在数据库/记事本中出现了不可见的奇怪字符。所以我想除了[LS] –

回答

0

JavaScript还是Java?嗯,你说的

删除隐藏字符和特殊字符(Java/JavaScript的

,所以我想JavaScript解决方案是可以接受的了。您可以通过一个简单的正则表达式实现它:

string.replace(/[\xa0\x00-\x09\x0b\x0c\x0e-\x1f\x7f]/g, ''); 

它会删除所有不可见的字符,而不是字母和数字等

+0

之外,还有其他的角色可以尝试以上的建议,但是没有奏效。 –

+0

@JohnEdwardDelosReyes。它怎么没用?您正在尝试使用JavaScript还是Java?它有没有抛出任何错误?此外,你想要删除什么字符代码(在Unicode中)? –