実際、問題は次のとおりです。js 自体が Unicode でエンコードされている場合、正規表現 s を使用してすべての空白を削除できますが、js が utf-8 でエンコードされている場合、正規表現は 160 としてエンコードされたスペースを処理できません。
以下では、まず正規表現を使用して 32 としてコード化されたスペースを削除し、次に再帰的方法を使用して文字列の両側にある Unicode スペースを削除します。
/**文字の両端のスペースを削除 開始
*@作者 Ao Shiwei
*@バージョン v1.0
*@日付 2009/11/14 22:51
*/
String .prototype.trim = function() {
var r = this.replace(/(^s*)|(s*$)/g, ""); ;
r = Rremoveblank(r);
return
}
関数 Lremoveblank(s) {
if (s.length == 1 && s.charCodeAt(0) ) == 160)
return "";
if (s.charCodeAt(0) == 160) {
s = s.substr(1, s.length - 1); Removeblank(s );
}
else {
return s;
}
}
function Rremoveblank(s) {
if (s.length == 1 && s .charCodeAt(0) == 160)
return "";
if (s.charCodeAt(s.length-1) == 160) {
s = s.substr(0, s.length - 1);
return Rremoveblank(s);
else {
return s;
//- 両方を削除文字の終わり スペースで終わる
//例
var a = " a ";