// ------------------------------------------------------------------------- //\r
\r
/**\r
+ * 文字列に関する関数を集めたものです。\r
* @namespace X.String\r
* @alias X.String\r
*/\r
// ------------------------------------------------------------------------- //\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
};\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
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
+ * 空白文字列を <br> に変換します。タブを &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
.split( '\b' ).join( '' );\r
};\r
\r
+/**\r
+ * 一部の文字実体参照をデコードします。", &, <, >, \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
.split( ' ' ).join( ' ' );\r
};\r
\r
+/**\r
+ * htmlタグで使われる文字を文字実体参照に変換します。", &, <, >, \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
.split( ' ' ).join( ' ' );\r
};\r
\r
+/**\r
+ * htmlタグで使われる文字を文字実体参照に変換します。", &, <, >, \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
};\r
};\r
\r
-/*\r
- * 信頼できる文字列だけに対して json 文字列のパースを行います\r
- */\r
-function X_String_parseTrustedJsonString( jsonString ){\r
- return window.JSON ? JSON.parse( jsonString ) : eval( '(' + jsonString + ')' );\r
-};\r