1.0.2 • Published 8 years ago

stringofit v1.0.2

Weekly downloads
8
License
MIT
Repository
github
Last release
8 years ago

stringofit.js

npm npm Github file size npm

A lots of useful methods that the JavaScript String object missing.

Why stringofit.js?

stringofit.js 产生的原因主要是因为原生的 JavaScript 中的 String 对象的方法实在不够用。而且有些方法实现了,也存在一些兼容问题或者浏览器支持的统一的问题。stringofit.js 中针这些问题,收集整理的很多实用的方法(有些直接摘录至其它的 JavaScript 框架中)。

stringofit.js 的目标也很明确,就是处理字符串相关操作的 JavaScript 方法库。并且 stringofit.js 收集的这些方法也是实际开发中经常会用到的方法,十分的实用。

所以如果你正在为处理 JavaScript 中的字符串烦恼,可以选择 stringofit.js,相信不会让你感到失望的!

Use CDN in browser

<script type="text/javascript" src="https://unpkg.com/stringofit@1.0.1/dist/stringofit.min.js"></script>

Install

Install with npm:

$ npm install stringofit

Install width bower

$ bower install stringofit

Usage

es5, browser and es6 ready

var stringofit = require('stringofit');

stringofit.camelCase('background-color');

API Documentation

camelCase(str)

camelCase(str) 方法返回将指定字符串转化成驼峰格式后的字符串。此方法主要用于将 css 的属性值转化成 JavaScript 支持的驼峰格式。

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: String

'str' 转化成驼峰格式后的字符串。

Example

stringofit.camelCase('background-color'); // -> 'backgroundColor'

capitalize(str)

capitalize(str) 方法返回将指定字符串转化成首字母大写后的字符串。

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: String

'str' 转化成首字母大写后的字符串。

Example

stringofit.capitalize('this is capitalize() method'); // -> 'This is capitalize() method'
stringofit.capitalize('THIS IS CAPITALIZE() METHOD'); // -> 'This is capitalize() method'

charAt(str,idx)

capitalize(str) 方法从指定字符串中返回指定索引位置的字符。本方法修复了原生 charAt 方法不支持非基本多文种平面(BMP)字符的问题。

Parameters

str

Type: String

必选,指定的字符串。

idx

Type: Number Default: 0

可选,一个介于0 和字符串长度减1之间的整数(0~length-1,默认值:0)。

Returns

Type: String

'str' 中指定索引位置的字符。

Example

stringofit.charAt('this is charAt() method', 3); // -> 's'
stringofit.charAt('this is charAt() method', 113); // -> ''
stringofit.charAt('this is charAt() method', -1); // -> ''

charCodeAt(str, idx)

charCodeAt(str, idx) 方法返回指定字符串在指定索引位置的字符 UTF-16 编码的数字。

本方法修复了 charCodeAt() 方法无法处理字符串中出现的未知的非基本多语言范围(非BMP,non-Basic-Multilingual-Plane)字符。

Parameters

str

Type: String

必选,指定的字符串。

idx

Type: Number Default: 0

可选,一个介于0 和字符串长度减1之间的整数(0~length-1,默认值:0)。

Returns

Type: String

'str' 指定索引位置的字符 UTF-16 编码的数字。

Example

stringofit.charCodeAt('this is charCodeAt() method'); // -> 116
stringofit.charCodeAt('THIS IS charCodeAt() METHOD', 3); // -> 83
stringofit.charCodeAt('THIS IS charCodeAt() METHOD', -1); // -> NaN

codePointAt(str,idx)

codePointAt(str,idx) 方法返回指定字符串在指定索引位置的 Unicode 编码的非负整数。本方法是对不支持原生 codePointAt() 方法环境添加的自定义方法。

Parameters

str

Type: String

必选,指定的字符串。

idx

Type: Number Default: 0

必选,'str' 中需要转码的元素的位置

Returns

Type: String

'str' 在指定索引位置的 Unicode 编码的非负整数。

Example

stringofit.codePointAt('this is codePointAt() method'); // -> 116
stringofit.codePointAt('UTF-16 编码的数字是在 0 到 65535 之间的整数。', 10); // -> 25968
stringofit.codePointAt('THIS IS codePointAt() METHOD', -1); // -> NaN

dasherize(str,regexp)

dasherize(str,regexp) 方法返回将指定字符串中所有匹配的字符替换成链接符号'-'的字符串。

Parameters

str

Type: String

必选,指定的字符串。

regexp

Type: String|RegExp Default: /_/g

可选,要替换的字符或者正则表达式

Returns

Type: String

'str' 中所有的下划线'_'替换成链接符号'-'的字符串。

Example

stringofit.dasherize('this_is_capitalize()_method'); // -> 'this-is-capitalize()-method'
stringofit.dasherize('THIS IS CAPITALIZE() METHOD', /\s/g); // -> 'THIS-IS-CAPITALIZE()-METHOD'
stringofit.dasherize('THIS IS CAPITALIZE() METHOD', 'I'); // -> 'TH-S -S CAP-TAL-ZE() METHOD'

decodeHTML(str)

decodeHTML(str) 方法返回将指定字符串中所有转义后 HTML 标记字符恢复成 HTML标记的字符串。

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: String

'str' 中所有转义后 HTML 标记字符恢复成 HTML标记的字符串。

Example

// 没有 HTML 标记则不做任何处理
stringofit.decodeHTML('this is charAt() method'); // -> 'this is charAt() method'
stringofit.decodeHTML('&amp;lt;link rel=&amp;#x27;next&amp;#x27; href=&amp;#x27;http:&amp;#x2F;&amp;#x2F;www.yaohaixiao.com&amp;#x2F;page&amp;#x2F;2&amp;#x2F;&amp;#x27; &amp;#x2F;&amp;gt;');
// -> '&lt;link rel=&#x27;next&#x27; href=&#x27;http:&#x2F;&#x2F;www.yaohaixiao.com&#x2F;page&#x2F;2&#x2F;&#x27; &#x2F;&gt;'

encodeHTML(html)

encodeHTML(html) 方法返回将指定字符串中所有 HTML 标记转义成特殊的转移字符后的字符串。

Parameters

html

Type: String

必选,指定的字符串。

Returns

Type: String

'html' 中的所有 HTML 标记转义成特殊的转移字符后的字符串。

Example

// 没有 HTML 标记则不做任何处理
stringofit.decodeHTML('this is charAt() method'); // -> 'this is charAt() method'
stringofit.decodeHTML('&lt;link rel=&#x27;next&#x27; href=&#x27;http:&#x2F;&#x2F;www.yaohaixiao.com&#x2F;page&#x2F;2&#x2F;&#x27; &#x2F;&gt;');
// -> '&amp;lt;link rel=&amp;#x27;next&amp;#x27; href=&amp;#x27;http:&amp;#x2F;&amp;#x2F;www.yaohaixiao.com&amp;#x2F;page&amp;#x2F;2&amp;#x2F;&amp;#x27; &amp;#x2F;&amp;gt;'

endsWith(str,search,idx)

Parameters

endsWith(str,search,idx) 方法用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 true 或 false。

str

Type: String

必选,指定的字符串。

search

Type: String

必选,要搜索的子字符串。

idx

Type: Number Default: str.length

可选,在 str 中搜索 search 的结束位置,默认值: str.length(也就是真正的字符串结尾处)。

Returns

Type: Boolean

'str' 以在指定位置 idx 以 search 结尾返回 true,否则返回 false。

Example

stringofit.endsWith('this is endsWith() method', 'd'); // -> true
stringofit.endsWith('this is endsWith() method', 'o', 24); // -> true
stringofit.endsWith('this is endsWith() method', 'd', -1); // -> false

escapeRegExp(str)

escapeRegExp(str) 方法返回将指定字符串中的正则表达式的字符转移后的字符串。

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: String

'str' 中所有正则表达式的字符转移后的字符串。

Example

stringofit.escapeRegExp('&#x2F;&lt;\w+(\s+(&quot;[^&quot;]*&quot;|&#x27;[^&#x27;]*&#x27;|[^&gt;])+)?(\&#x2F;)?&gt;|&lt;\&#x2F;\w+&gt;&#x2F;gi');
// -> '\&#x2F;&lt;\\w\+\(\\s\+\(&quot;\[\^&quot;\]\*&quot;\|&#x27;\[\^&#x27;\]\*&#x27;\|\[\^&gt;\]\)\+\)\?\(\\\&#x2F;\)\?&gt;\|&lt;\\\&#x2F;\\w\+&gt;\&#x2F;gi'

fromCodePoint()

fromCodePoint() 方法返回使用指定的代码点序列创建的字符串。

Parameters

arguments

Type: arguments

必选,一串 Unicode 编码。

Returns

Type: String

arguments 参数指定的代码点序列创建的字符串。

Example

stringofit.fromCodePoint( 61, 62, 63, 64 ); // -> '=&gt;?@'

includes(str,search,start)

includes(str,search,start) 方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false。

Parameters

str

Type: String

必选,指定的字符串。

search

Type: String

必选,要在此字符串中搜索的字符串。

start

Type: Number Default: 0

可选。从当前字符串的哪个索引位置开始搜寻子字符串

Returns

Type: Boolean

'str' 中包含在 search 字符串返回 true,否则返回 false。

Example

stringofit.includes('str 中包含在 search 字符串返回 true,否则返回 false。', 'false'); // -> true
stringofit.includes('str 中包含在 search 字符串返回 true,否则返回 false。', 'h'); // -> true
stringofit.includes('str 中包含在 search 字符串返回 true,否则返回 false', 'false', 10); // -> true
stringofit.includes('str 中包含在 search 字符串返回 true,否则返回 false', 'false', -10); // -> true

interpret(val)

interpret(val) 方法返回指定值转化成的字符串。

Parameters

val

Type: String

必选,指定的字符串。

Returns

Type: String

'val' 转化成的字符串

Example

stringofit.interpret('str'); // -> 'str'
stringofit.interpret(6); // -> '6'
stringofit.interpret(null); // -> ''
stringofit.interpret({}); // -> '[object Object]'
stringofit.interpret(alert); // -> 'function alert() { [native code] }'
stringofit.interpret(false); // -> 'false'

isJSON(str)

isJSON(str) 方法用于判断测试字符串是否为 JSON 格式数据,如果是返回 true,否则返回 false。

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: Boolean

'str' 是JSON 格式数据返回 true,否则返回 false。

Example

stringofit.isJSON("\"this is a JSON string.\""); // -&gt; true
stringofit.isJSON("\"[\"1\",\"2\",3]\""); // -&gt; true
stringofit.isJSON("3"); // -&gt; true
stringofit.isJSON("{\"prop\":\"JSON\"}"); // -&gt; true
stringofit.isJSON({prop:'JSON'}); // -&gt; false
stringofit.isJSON("{prop:'JSON'}"); // -&gt; false

parseJSON(str,callback)

parseJSON(str,callback) 方法用于将 JSON 格式字符串转化为 JavaScript 数据。

Parameters

str

Type: String

必选,指定的字符串。

callback

Type: Function

可选,处理转化成键值(JavaScript)数据的回调函数。

Returns

Type: Object|String|Boolean|Array|Number

'str' 转化得到的 JavaScript 数据。

Example

stringofit.parseJSON('this is a JSON string.'); // -&gt; 'this is a JSON string.'
stringofit.parseJSON('["1",3]'); // -&gt; ['1',3]
stringofit.parseJSON(3); // -&gt; 3
stringofit.parseJSON('{"prop":"JSON"}'); // -&gt; {prop:"JSON"}
stringofit.parseJSON('false'); // -&gt; false

repeat(str,count)

repeat(str,count) 方法构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。

Parameters

str

Type: String

必选,指定的字符串。

count

Type: Number

必选,介于 0 和正无穷大之间的整数 : [0, +∞) 。表示在新构造的字符串中重复了多少遍原字符串。

Returns

Type: String

包含指定字符串的指定数量副本的新字符串。

Example

stringofit.repeat( 'stringofit is useful.', 3 );
// -> 'stringofit is useful.stringofit is useful.stringofit is useful.'

startsWith(str,search,idx)

startsWith(str,search,idx) 方法用来判断当前字符串是否是以另外一个给定的子字符串“开头”的,根据判断结果返回 true 或 false。

Parameters

str

Type: String

必选,指定的字符串。

search

Type: String

必选,要搜索的子字符串。

idx

Type: Number Default: 0

可选,在 str 中搜索 search 的开始位置

Returns

Type: Boolean

'str' 以在指定位置 idx 以 search 开始返回 true,否则返回 false。

Example

stringofit.startsWith('this is startsWith() method', 't'); // -> true
stringofit.startsWith('this is startsWith() method', 'o', 25); // -> true
stringofit.startsWith('this is startsWith() method', 'd', 26); // -> true
stringofit.startsWith('this is startsWith() method', 'h', 2); // -> false

stripHTML(str)

stripHTML(str) 方法用来移除指定字符串中所有的 HTML 代码,并返回移除 HTML 代码后的字符串。

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: String

'str' 移除 HTML 代码后的字符串

Example

stringofit.stripHTML('this is a string contains &lt;body&gt; tag.');
// -> 'this is a string contains  tag.'

stripScripts(str)

stripScripts(str) 方法用来移除指定字符串中所有的 JavaScript 代码,并返回移除 JavaScript 代码后的字符串。

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: String

'str' 移除 JavaScript 代码后的字符串

Example

stringofit.stripScripts('it contains &lt;script&gt;alert(&#x27;dangerous&#x27;)&lt;&#x2F;script&gt; javascript.');
// -> 'it contains  javascript.'

substr(str,start,length)

substr(str,start,length) 方法返回一个字符串中从指定位置开始到指定字符数的字符。本方法修复了 Microsoft's JScript 不支持负的 start 索引的 bug。

Parameters

str

Type: String

必选,指定的字符串。

start

Type: Number

必选,开始提取字符的位置。如果为负值,则被看作 strLength + start,其中 strLength 为字符串的长度(例如,如果 start 为 -3,则被看作 strLength-3)。

length

Type: Number

可选,提取的字符数。

Returns

Type: String

'str' 从指定位置 start 开始到指定字符数 length 的字符。

Example

stringofit.substr('this is substr() method', 1); // -> 'his is substr() method'
stringofit.substr('this is substr() method', 2, 25); // -> 'is is substr() method'
stringofit.substr('this is substr() method', 3, 10); // -> 's is subst'
stringofit.substr('this is substr() method', -4, 19); // -> 'thod'

template(json,html)

template(json,html) 方法是一个简单的 JavaScript 模板解析器。

用指定的 JSON 对象中的值,替换掉给定的 HTML 模板字符串中的特殊标记(<%=property%>),从而得到完整的 HTML 模板字符串。

Parameters

json

Type: Object

必选,指定的 JSON 对象。

separator

Type: String

必选,指定的 HTML 模板字符串。

Returns

Type: String

最终得到的完整的 HTML 模板字符串。

Example

stringofit.template({
    "charset": "UTF-8",
    "name": "viewport",
    "content": "width=device-width"
},'&lt;meta charset=&quot;&lt;%=charset%&gt;&quot;&gt;&lt;meta name=&quot;&lt;%=name%&gt;&quot; content=&quot;&lt;%=content%&gt;&quot;&gt;');
// -> '&lt;meta charset=&quot;UTF-8&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot;&gt;'

toArray(str,separator)

toArray(str,separator) 方法将指定的字符串按照指定的分隔符(默认值:空字符串'')分开,并将分开后的字符串保存到一个新的数组中返回。

Parameters

str

Type: String

必选,指定的字符串。

separator

Type: String Default:

可选。指定的分隔符

Returns

Type: String

'str' 用 separator 分开后的字符串数组。

Example

stringofit.toArray('stringofit.toArray()');
// -> ['s','t','r','i','n','g','o','f','i','t','.','t','o','A','r','r','a','y','(',')']
stringofit.toArray('stringofit.toArray()', '.');
// -> ['stringofit','toArray()']

toJs(str)

toJs(str) 方法将指定的字符串中特殊的字符转义成 JavaScript 支持的字符,并返回转义后的字符串。

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: String

'str' 被转义后的字符串

Example

stringofit.toJs('&lt;textarea class=&quot;source&quot; id=&quot;source&quot; cols=&quot;30&quot; rows=&quot;10&quot; placeholder=&quot;源代码&quot; name=&quot;source&quot;&gt;&lt;&#x2F;textarea&gt;');
// -> "&#x27;&lt;textarea class=\&#x27;source\&#x27; id=\&#x27;source\&#x27; cols=\&#x27;30\&#x27; rows=\&#x27;10\&#x27; placeholder=\&#x27;源代码\&#x27; name=\&#x27;source\&#x27;&gt;&lt;&#x2F;textarea&gt;&#x27;"

toQueryParams(qs,separator)

toQueryParams(qs,separator) 方法用来将搜索字符串转化成 JSON 对象,并返回该对象。

Parameters

qs

Type: String

必选,搜索字符串。

separator

Type: String Default: &

可选。qs 中的包含的字符(进行分组)。

Returns

Type: String

'qs' 串转化成的 JSON 对象。

Example

stringofit.toQueryString('wd=stringofit&rsv_spt=1&rsv_iqid=0xbbed80230001afdd&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=19&rsv_sug1=21&rsv_sug7=100&rsv_t=81f96JveVA5q6Amfz5v72d3AvIgItDERoY64wraN%2FMTEQgwk5k6Xm9yieyQVFpygDga0&rsv_sug2=0&inputT=5857&rsv_sug4=5857');
// -> {
          "wd":"stringofit",
          "rsv_spt":"1",
          "rsv_iqid":"0xbbed80230001afdd",
          "issp":"1",
          "f":"8",
          "rsv_bp":"0",
          "rsv_idx":"2",
          "ie":"utf-8",
          "tn":"baiduhome_pg",
          "rsv_enter":"1",
          "rsv_sug3":"19",
          "rsv_sug1":"21",
          "rsv_sug7":"100",
          "rsv_t":"81f96JveVA5q6Amfz5v72d3AvIgItDERoY64wraN/MTEQgwk5k6Xm9yieyQVFpygDga0",
          "rsv_sug2":"0",
          "inputT":"5857",
          "rsv_sug4":"5857"
      }

toQueryString(json)

toQueryString(json) 方法将指定的 JSON 对象转化成搜索字符串,并返回该字符串。

Parameters

json

Type: Object

必选,指定的 JSON 对象

Returns

Type: String

json 转化成的搜索字符串

Example

stringofit.toQueryString({
    "wd":"stringofit",
    "rsv_spt":"1",
    "rsv_iqid":"0xbbed80230001afdd",
    "issp":"1",
    "f":"8",
    "rsv_bp":"0",
    "rsv_idx":"2",
    "ie":"utf-8",
    "tn":"baiduhome_pg",
    "rsv_enter":"1",
    "rsv_sug3":"19",
    "rsv_sug1":"21",
    "rsv_sug7":"100",
    "rsv_t":"81f96JveVA5q6Amfz5v72d3AvIgItDERoY64wraN/MTEQgwk5k6Xm9yieyQVFpygDga0",
    "rsv_sug2":"0",
    "inputT":"5857",
    "rsv_sug4":"5857"
});
// -> 'wd=stringofit&rsv_spt=1&rsv_iqid=0xbbed80230001afdd&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=19&rsv_sug1=21&rsv_sug7=100&rsv_t=81f96JveVA5q6Amfz5v72d3AvIgItDERoY64wraN%2FMTEQgwk5k6Xm9yieyQVFpygDga0&rsv_sug2=0&inputT=5857&rsv_sug4=5857'

trim(str)

trim(str) 方法返回指定字符串移除左右两边的空格的字符串。

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: String

str' 移除左右两边空格后的字符串

Example

stringofit.trim(' trim() '); // -> 'trim()'

trimLeft(str)

trimLeft(str) 方法返回指定字符串移除左边的空格的字符串

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: String

str' 移除左边空格后的字符串

Example

stringofit.trimLeft(' trimLeft() '); // -> 'trimLeft() '

trimRight(str)

trimRight(str) 方法返回返回指定字符串移除右边的空格的字符串。

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: String

str' 移除右边空格后的字符串

Example

stringofit.trimRight(' trimRight() '); // -> ' trimRight()'

truncate(str,length,truncation)

truncate(str,length,truncation) 方法返回指定字符串截取指定长度后的字符串。

Parameters

str

Type: String

必选,指定的字符串。

length

Type: Number Default: 30

可选,截取指定长度。

truncation

Type: Number Default: ...

可选,截取后,字符串末尾的显示字符

Returns

Type: String

'str' 处理后的字符串

Example

stringofit.truncate('truncate');
// -> 'truncate'
stringofit.truncate('A lots of useful methods that the JavaScript String object missing.');
// -> 'A lots of useful methods th...'
stringofit.truncate('A lots of useful methods that the JavaScript String object missing.', 20);
// -> 'A lots of useful ...'
stringofit.truncate('A lots of useful methods that the JavaScript String object missing.', 20, '...[More Details]');
// -> 'A l...[More Details]'

underscore(str)

underscore(str) 方法返回将指定字符串中所有的连接符 '-'、大写字母和小写字母的链接位置,替换成下划线 '_',并将所有字符都使用小写字幕显示后的字符串。

Parameters

str

Type: String

必选,指定的字符串。

Returns

Type: String

'str' 处理后的字符串

Example

stringofit.underscore('A lots of useful methods that the JavaScript String object missing.');
// -> 'a lots of useful methods that the java_script string object missing.'
stringofit.underscore('background-color: #FFF;');
// -> 'background_color: #fff;'
stringofit.underscore('stringofit::underscore');
// -> 'stringofit/underscore'
stringofit.underscore('bABaaaBabbaA');
// -> 'b_a_baaa_babba_a'

unfilterJSON(str, filter)

unfilterJSON(str, filter) 方法用来移除 Ajax JSON 或 JavaScript 响应内容周围的安全注释界定符。这是供内部使用的一种安全机制。

Parameters

str

Type: String

必选,指定的字符串。

filter

Type: String Default: /^\/\*-secure-([\s\S]*)\*\/\s*$/

可选,要过滤的字符。

Returns

Type: String

'str' 处理后的字符串

Example

stringofit.unfilterJSON('/*-secure-{"name": "Robert", "age": 35}*/');
// -> '{"name": "Robert", "age": 35}'

Issues

https://github.com/yaohaixiao/stringofit/issues

Changes Log

https://github.com/yaohaixiao/stringofit/releases

License

JavaScript Code Licensed under MIT License.

API Documentation Licensed under CC BY 3.0

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.2.0

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago