Jquery输入文本中的不可见字符串

时间:2016-10-25 19:49:06

标签: javascript jquery

大家好,请帮帮我。

我对某些与我的正则表达式不匹配的电子邮件验证有一些问题。 什么是我的问题是我认为是\ n或\ r \ n但是当我尝试

var count = $("input#email_address").val().length;

从excel复制到我的文本框时得到25的结果VS手动输入文本相同,结果为24个字符。

var str = $("input#email_address").val().replace(/\r?\n/g, "");

我试过这个并修剪()并匹配找到\ r \ n或空格但返回null。

2 个答案:

答案 0 :(得分:1)

首先删除所有不可读的字符,以防万一:

var str = $("input#email_address").val().replace(/[\x00-\x1f]+/g, "");

然后,您还应检查字符串中的某些特殊字符是否为多字节。在这种情况下,您需要更详细的方法,请参阅:

String length in bytes in JavaScript

答案 1 :(得分:1)

好的,如果你遇到这个。这是解决方案。

我通过调用escape(str)来检查输入文本的值,然后得到了结果 “%u200Btest@test.com”它应该是“test@test.com”他们称之为零宽度空间(如果我错了,请纠正我。)

这是修复。

str = str.replace(/\u200B/g,'');

JavaScript remove ZERO WIDTH SPACE (unicode 8203) from string