这在FireFox中运行良好: $( “#LISTNAME”)。VAL()。修剪()
但在safari中它有错误:$(“#listname”)。val()。trim()虽然这确实有效,$(“#listname”)。val()
为什么?
答案 0 :(得分:10)
字符串上没有内在的trim
函数。 jQuery确实定义了$.trim
,但你可以这样使用它:
$.trim($("#listname").val())
例如,您将字符串传递给它,而不是从String上的属性中调用它。
正如另一个回答者提到的那样,如果你愿意的话,可以将它添加到所有字符串中(虽然我会利用jQuery的功能而不是自己的正则表达式,因为浏览器中的Unicode变幻莫测):
if (!String.prototype.trim) {
String.prototype.trim = (function() {
function String_trim() {
return jQuery.trim(this);
}
return String_trim;
})();
}
我在那里使用了一个命名函数(I always use named functions),但如果你没有打扰,你可以使用更少的代码行:
if (!String.prototype.trim) {
String.prototype.trim = function() {
return jQuery.trim(this);
};
}
答案 1 :(得分:1)
这是因为trim
未在所有浏览器中的String
类型上定义。它不是jQuery
函数。你可以define the prototype它应该有效:
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
return this.replace(/\s+$/,"");
}