$.trim()
使用下面的正则表达式修剪的字符串:
/^(\s|\u00A0)+|(\s|\u00A0)+$/g
事实证明,这可能是很丑陋,例:
var mystr = ' some test -- more text new test xxx';
mystr = mystr.replace(/^(\s|\u00A0)+|(\s|\u00A0)+$/g, "");
此代码挂起 Firefox和Chrome,它只是需要永远。 “mystr
”包含空格,但主要是hex 160(A0)
个字符。这个“问题”只会发生,如果没有预先whitespace/A0
,但在字符串内的某处。我不知道为什么会发生这种情况。
这个表达式:
/^[\n\r\t \xA0]+|[\n\r\t \xA0]$/g
只是正常工作在所有测试场景。也许更好的模式呢?
来源:http://code.jquery.com/jquery-1.4.2.js
UPDATE
它看起来就像你不能复制粘贴&这个例子字符串,在某些点的A0
字符被替换。 Firebug console
也将替换粘贴的字符,您必须在一个sepperate的html文件/编辑器中创建自己的字符串来测试这个。
好像SO转换你的A0S为20秒(至少在我砍你的代码粘贴到Emacs)。 – 2010-06-28 13:19:32
'$ .trim()'不使用那个正则表达式,事实上在大多数情况下它不使用正则表达式......你在看什么版本的jQuery? – 2010-06-28 13:19:48
@Nick:该正则表达式自1.4.2起使用 – 2010-06-28 13:21:42