ECMAScript 5 の String.prototype.trim を実装する
ECMAScript 5 規定 の String.prototype.trim は文字列の先頭、末尾から WhiteSpace (7.2 White Space), LineTerminator(7.3 Line Terminators) を取り除く。 #JavaScript
2010-08-22 22:50:21ECMAScript 3, 5 規定 の正規表現 \s は WhiteSpace, LineTerminator (15.10.2.12 CharacterClassEscape) http://bit.ly/cC2OhU #JavaScript
2010-08-22 22:53:24従って、String.prototype.trim = function () { return this.replace(/^\s+|\s+$/, ''); }; となる。 #JavaScript
2010-08-22 22:55:09ECMAScript 5 規定の WhiteSpace(7.2 White Space) は [\u0009\u000B\u000C\u0020\u00A0\uFFFF] とUnicode文字の space separator(Zs) で構成される。#JavaScript
2010-08-22 22:56:15Unicode 5.2.0 規定の Zs は [\u1680\u180E\u2000-\u200A\u202F\u205F\u3000] で構成される。http://bit.ly/as0YEX http://bit.ly/bSp17E #JavaScript
2010-08-22 22:56:45ECMAScript 5 規定の LineTerminator (7.3 Line Terminators) は [\u000A\u000D\] で構成される。#JavaScript
2010-08-22 22:56:52つまり、正規表現で文字クラスを指定することも可能で実際そうやって実装していた。http://vird2002.s8.xrea.com/javascript/ECMAScript5.js #JavaScript
2010-08-22 22:56:59\s の仕様の気づきは gtltさん のコメント ( http://d.hatena.ne.jp/babu_babu_baboo/20100821#c1282439729 ) から得ました。多謝! #JavaScript
2010-08-22 22:57:35ECMAScript 5 仕様書(pdf) http://bit.ly/FpAue / ECMAScript 3 仕様書(邦訳HTML) http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ #JavaScript
2010-08-22 22:57:41@think49 trimの仕様は\sの仕様に対応しますが、IE実装の\sは仕様上の\sには対応してないので一応注意が必要だったり
2010-08-22 23:54:43IE は正規表現の \s と trim のスペース文字のセットが違うという話を読んだことがある。taku_eof さんだったかな。
2010-08-22 23:57:32@os0x @edvakf それは知りませんでした。結局、IE対応がメインとなるので、\s で実装しない方が良さそうですね。そのIEに関する仕様を掲載している参考URLをご存じないでしょうか? #JavaScript
2010-08-23 00:01:16@think49 IE の仕様に関するページがあるかどうかは存じ上げません。そういうことをつぶやいてたのは taku_eof さんだったかなと思ったんですが、うろ覚えです。ごめんなさい。http://j.mp/9mQNr4
2010-08-23 00:19:14ECMAScript の White Space は http://bclary.com/2004/11/07/#a-7.2 と http://www.fileformat.info/info/unicode/category/Zs/list.htm か。
2010-08-23 00:20:07LineTerminatorの文字クラスが誤っていたので訂正。LineTerminator は [\u000A\u000D\] で構成される。手元のテキストは合っているのだけど、投稿ミスかな…?#JavaScript
2010-08-23 01:02:22なぜだ……。¥u2028¥u2029 (バックスラッシュは半角) を投稿すると、バックスラッシュ(\) に変換されてしまう……。OTL
2010-08-23 01:06:13