stringofit v1.0.2
stringofit.js
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('&lt;link rel=&#x27;next&#x27; href=&#x27;http:&#x2F;&#x2F;www.yaohaixiao.com&#x2F;page&#x2F;2&#x2F;&#x27; &#x2F;&gt;');
// -> '<link rel='next' href='http://www.yaohaixiao.com/page/2/' />'
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('<link rel='next' href='http://www.yaohaixiao.com/page/2/' />');
// -> '&lt;link rel=&#x27;next&#x27; href=&#x27;http:&#x2F;&#x2F;www.yaohaixiao.com&#x2F;page&#x2F;2&#x2F;&#x27; &#x2F;&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('/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?(\/)?>|<\/\w+>/gi');
// -> '\/<\\w\+\(\\s\+\("\[\^"\]\*"\|'\[\^'\]\*'\|\[\^>\]\)\+\)\?\(\\\/\)\?>\|<\\\/\\w\+>\/gi'
fromCodePoint()
fromCodePoint() 方法返回使用指定的代码点序列创建的字符串。
Parameters
arguments
Type: arguments
必选,一串 Unicode 编码。
Returns
Type: String
arguments 参数指定的代码点序列创建的字符串。
Example
stringofit.fromCodePoint( 61, 62, 63, 64 ); // -> '=>?@'
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.\""); // -> true
stringofit.isJSON("\"[\"1\",\"2\",3]\""); // -> true
stringofit.isJSON("3"); // -> true
stringofit.isJSON("{\"prop\":\"JSON\"}"); // -> true
stringofit.isJSON({prop:'JSON'}); // -> false
stringofit.isJSON("{prop:'JSON'}"); // -> 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.'); // -> 'this is a JSON string.'
stringofit.parseJSON('["1",3]'); // -> ['1',3]
stringofit.parseJSON(3); // -> 3
stringofit.parseJSON('{"prop":"JSON"}'); // -> {prop:"JSON"}
stringofit.parseJSON('false'); // -> 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 <body> 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 <script>alert('dangerous')</script> 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"
},'<meta charset="<%=charset%>"><meta name="<%=name%>" content="<%=content%>">');
// -> '<meta charset="UTF-8"><meta name="viewport" content="width=device-width">'
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('<textarea class="source" id="source" cols="30" rows="10" placeholder="源代码" name="source"></textarea>');
// -> "'<textarea class=\'source\' id=\'source\' cols=\'30\' rows=\'10\' placeholder=\'源代码\' name=\'source\'></textarea>'"
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