OSDN Git Service

Version 0.6.169, add doc comment.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 06_XString.js
index 58ec770..828db90 100644 (file)
@@ -9,6 +9,7 @@ var X_String_CRLF = String.fromCharCode( 13 ) + String.fromCharCode( 10 );
 // ------------------------------------------------------------------------- //\r
 \r
 /**\r
+ * 文字列に関する関数を集めたものです。\r
  * @namespace X.String\r
  * @alias X.String\r
  */\r
@@ -32,6 +33,12 @@ X[ 'String' ] = {
 // ------------------------------------------------------------------------- //\r
 // --- implements ---------------------------------------------------------- //\r
 // ------------------------------------------------------------------------- //\r
+/**\r
+ * 文字列を数値、NaN,Infinity,-Infinity,bool値、null,undefinedに変換します。1e3等には未対応です。\r
+ * @alias X.String.parse\r
+ * @param {string}\r
+ * @return {*}\r
+ */\r
 function X_String_parse( v ){\r
        var _v, n;\r
        if( X_Type_isString( v ) ){\r
@@ -55,7 +62,14 @@ function X_String_parse( v ){
        };\r
        return v;\r
 };\r
-       \r
+\r
+/**\r
+ * <p>空白文字を半角スペースに変換します。\n\r,\t,\r,\n,\f,\b\r
+ * <p>2つ以上の連続する半角スペースを一つの半角スペースにします。\r
+ * @alias X.String.cleanupWhiteSpace\r
+ * @param {string}\r
+ * @return {string}\r
+ */\r
 function X_String_cleanupWhiteSpace( text ){\r
        var _ = ' ', __ = '  ', CRLF = X_String_CRLF;\r
        //text.indexOf( CRLF )   !== -1 && ( text = text.split( CRLF ).join( _ ) );\r
@@ -65,12 +79,23 @@ function X_String_cleanupWhiteSpace( text ){
        text.indexOf( '\n' )   !== -1 && ( text = text.split( '\n' ).join( _ ) );\r
        text.indexOf( '\f' )   !== -1 && ( text = text.split( '\f' ).join( _ ) );\r
        text.indexOf( '\b' )   !== -1 && ( text = text.split( '\b' ).join( _ ) );\r
-       while( text.indexOf( __ ) !== -1 ){\r
-               text = text.split( __ ).join( _ );\r
+       //while( text.indexOf( __ ) !== -1 ){\r
+       //      text = text.split( __ ).join( _ );\r
+       //};\r
+       //return text;\r
+       while( true ){\r
+               text = text.split( __ );\r
+               if( text.length < 2 ) return text.join( _ );\r
+               text = text.join( _ );\r
        };\r
-       return text;\r
 };\r
 \r
+/**\r
+ * 空白文字列を &lt;br&gt; に変換します。タブを &amp;nbsp; 4つに変換します。\r
+ * @alias X.String.whiteSpaceToTag\r
+ * @param {string}\r
+ * @return {string} html文字列\r
+ */\r
 function X_String_whiteSpaceToTag( text ){\r
     if( text == null ) return '';\r
     return text.toString()\r
@@ -85,6 +110,12 @@ function X_String_whiteSpaceToTag( text ){
        .split( '\b' ).join( '' );\r
 };\r
 \r
+/**\r
+ * 一部の文字実体参照をデコードします。&quot;, &amp;, &lt;, &gt;, &nbsp;\r
+ * @alias X.String.chrReferanceTo\r
+ * @param {string}\r
+ * @return {string} html文字列\r
+ */\r
 function X_String_chrReferanceTo( str ){\r
     if( str == null ) return '';\r
     return str.toString()\r
@@ -95,6 +126,12 @@ function X_String_chrReferanceTo( str ){
        .split( '&nbsp;' ).join( ' ' );\r
 };\r
 \r
+/**\r
+ * htmlタグで使われる文字を文字実体参照に変換します。&quot;, &amp;, &lt;, &gt;, &nbsp;\r
+ * @alias X.String.chrReferanceTo\r
+ * @param {string}\r
+ * @return {string}\r
+ */\r
 function X_String_toChrReferance( str ){\r
     if( str == null ) return '';\r
     str += '';\r
@@ -106,30 +143,43 @@ function X_String_toChrReferance( str ){
        .split( ' ' ).join( '&nbsp;' );\r
 };\r
 \r
+/**\r
+ * htmlタグで使われる文字を文字実体参照に変換します。&quot;, &amp;, &lt;, &gt;, &nbsp;\r
+ * @alias X.String.isNumberString\r
+ * @param {string}\r
+ * @return {boolean}\r
+ */\r
 function X_String_isNumberString( v ){\r
        var n = v - 0;\r
        return '' + n === v || '' + n === '0' + v;\r
 };\r
 \r
-// https://github.com/jquery/jquery/blob/master/src/serialize.js\r
+/**\r
+ * postdata のために object を文字列に変換します。\r
+ * https://github.com/jquery/jquery/blob/master/src/serialize.js\r
+ * @alias X.String.serialize\r
+ * @param {object}\r
+ * @param {boolean} [traditional=]\r
+ * @return {string}\r
+ */\r
 function X_String_serialize( a, traditional ) {\r
        var prefix,\r
                list = [];\r
 \r
        // If an array was passed in, assume that it is an array of form elements.\r
-       if ( X_Type_isArray( a ) && false ) {\r
+       //if ( X_Type_isArray( a ) && false ) {\r
                // Serialize the form elements\r
                //jQuery.each( a, function() {\r
                //      X_String_serialize_addParam( list, this.name, this.value );\r
                //});\r
 \r
-       } else {\r
+       //} else {\r
                // If traditional, encode the 'old' way (the way 1.3.2 or older\r
                // did it), otherwise encode params recursively.\r
                for ( prefix in a ) {\r
-                       X_String_serialize_buildParams( list, prefix, a[ prefix ], traditional );\r
+                       X_String_serialize_buildParams( list, prefix, a[ prefix ], !!traditional );\r
                }\r
-       }\r
+       //}\r
 \r
        // Return the resulting serialization\r
        return list.join( '&' ).split( '%20' ).join( '+' );\r
@@ -176,9 +226,3 @@ function X_String_serialize_buildParams( list, prefix, obj, traditional ) {
        };\r
 };\r
 \r
-/*\r
- * 信頼できる文字列だけに対して json 文字列のパースを行います\r
- */\r
-function X_String_parseTrustedJsonString( jsonString ){\r
-       return window.JSON ? JSON.parse( jsonString ) : eval( '(' + jsonString + ')' );\r
-};\r