Skip to content
This repository has been archived by the owner on Aug 24, 2022. It is now read-only.

API 文档 - str 模块 #52

Open
cssmagic opened this issue Mar 31, 2015 · 1 comment
Open

API 文档 - str 模块 #52

cssmagic opened this issue Mar 31, 2015 · 1 comment
Labels

Comments

@cssmagic
Copy link
Member

API 文档 - str 模块

JavaScript 变量

以下预定义的变量在业务层可以直接使用。

_.str.RE_EMAIL

校验电子邮箱的正则表达式。

示例

_.str.RE_EMAIL.test('[email protected]')  // => true
_.str.RE_EMAIL.test('foo@bar')  // => false
_.str.RE_EMAIL.test('foo.bar.cn')  // => false

_.str.RE_MOBILE

校验手机号的正则表达式。

手机号必须是中国大陆的手机号,13 位数字,不可包含空格、横杠等特殊字符。

示例

_.str.RE_MOBILE.test('13355668899')  // => true
_.str.RE_MOBILE.test('021-55668899')  // => false
_.str.RE_MOBILE.test('10086')  // => false

_.str.RE_POSTCODE

校验邮政编码的正则表达式。

邮政编码必须是中国大陆的邮政编码,6 位数字,不可包含空格、横杠等特殊字符。

示例

_.str.RE_POSTCODE.test('200030')  // => true
_.str.RE_POSTCODE.test('4008517517')  // => false
_.str.RE_POSTCODE.test('1234')  // => false

JavaScript 接口

_.str.isHash(string)

判断是否为 hash 字符串。

Hash 字符串以 # 开头,比如 #foo 就是一个 hash 字符串。这种字符串通常出现于链接锚点(<a href="#anchor">bar</a>)、ID 选择符($('#id'))、Twitter 标签或 location.hash 的值等等。

字符串开头的空白符将被忽略,不影响判断结果。

参数

  • string -- 字符串。需要判断的字符串。

返回值

布尔值。判断结果。

示例

_.str.isHash('#foo')  // => true
_.str.isHash('bar')  // => false
_.str.isHash('  #foo-bar')  // => true

_.str.stripHash(string)

去除 hash 字符串开头的 # 字符。

字符串头尾的空白符也将被去除。

参数

  • string -- 字符串(非字符串会被强制转换为字符串)。需要处理的字符串。

返回值

字符串。处理结果。

示例

_.str.stripHash('#foo')  // => 'foo'
_.str.stripHash('bar')  // => 'bar'
_.str.stripHash('  #foo-bar')  // => 'foo-bar'

Underscore.string 同名接口

str 模块提供的部分接口与 Underscore.string 类库的同名接口完全一致。这些接口的源码均引用了 Underscore.string 的实现,并存放在 src/str-backup.js 文件中。

如果你的项目已经加载了 Underscore.string 类库,则可以自行构建一个不包含这部分源码的 Underscore.ext 包;此时使用完整的 Underscore.ext 包也没有关系,因为它会自动跳过这些同名接口的加载。

字符串裁剪

  • _.str.trim(string, [characters])

    请参考 Underscore.string 的文档: trim

  • _.str.ltrim(string, [characters])

    请参考 Underscore.string 的文档: ltrim

  • _.str.rtrim(string, [characters])

    请参考 Underscore.string 的文档: rtrim

字符串包含关系

  • _.str.include(string, substring)

    请参考 Underscore.string 的文档: include

    别名: _.str.contains()

  • _.str.startsWith(string, starts, [position])

    请参考 Underscore.string 的文档: startsWith

  • _.str.endsWith(string, ends, [position])

    请参考 Underscore.string 的文档: endsWith

@cssmagic cssmagic added the doc label Mar 31, 2015
@cssmagic
Copy link
Member Author

cssmagic commented May 8, 2015

以下是未开公、未确定的接口。可能有部分特性还未实现。

JavaScript 变量

_.str.CNY

人民币符号 ¥

_.str.RMB

_.str.CNY 的别名。

_.str.FULL_WIDTH_CNY

全角的人民币符号

示例

// 将所有全角的人民币符号替换为半角
var text = '¥1000~¥2000'
text.split(_.str.FULL_WIDTH_CNY).join(_.str.CNY)  // => '¥1000~¥2000'

_.str.FULL_WIDTH_RMB

_.str.FULL_WIDTH_CNY 的别名。

JavaScript 接口

_.str.isFullUrl(string)

判断是否为完整的 URL。以 http://https://// 开头的字符串即视为完整。

参数

  • string -- 字符串。需要判断的字符串。

返回值

布尔值。判断结果。

示例

_.str.isHash('http://foo.com/bar')  // => true
_.str.isHash('foo.com')  // => false
_.str.isHash('/bar/index.html')  // => false

_.str.isAbsolutePath(string)

判断是否为绝对路径。以 http://https:///// 开头的字符串即视为绝对路径。

参数

  • string -- 字符串。需要判断的字符串。

返回值

布尔值。判断结果。

示例

_.str.isHash('http://foo.com/bar')  // => true
_.str.isHash('foo.com')  // => false
_.str.isHash('/bar/index.html')  // => true

_.str.uniq(array)

从字符串数组中去除重复的项。

注意事项

  • 非字符串的值会被转换为字符串后进行比对,即 null'null' 会被视为重复。
  • 去重后的各个字符串在数组中的排序无法保证。

参数

  • array -- 字符串数组。

返回值

数组。去重结果。

示例

_.str.uniq(['foo', 'foo', 'bar'])  // => ['foo', 'bar']

_.str.toFloat(string)

转换为浮点数。

可以视为 parseFloat() 的别名。

参数

  • string -- 字符串。

返回值

数字。转换结果。

示例

_.str.toFloat('0')  // => 0
_.str.toFloat('1.77')  // => 1.77
_.str.toFloat('2.3.6')  // => 2.3
_.str.toFloat('2e3')  // => 2000
_.str.toFloat('1.23foo')  // => 1.23
_.str.toFloat('foo123')  // => NaN

_.str.toInt(string)

转换为整数。

可以视为 parseInt(string, 10) 的别名。直接取整,不做舍入。

参数

  • string -- 字符串。

返回值

数字。转换结果。

示例

_.str.toInt('0')  // => 0
_.str.toInt('1.77')  // => 1
_.str.toInt('2.3.6')  // => 2
_.str.toInt('2e3')  // => 2000
_.str.toInt('1.23foo')  // => 1
_.str.toInt('foo123')  // => NaN

_.str.toFixed(string, [i])

转换为固定位数的小数。会做舍入。

Number.prototype.toFixed() 的功能类似,但此接口接收字符串,输出数字。

参数

  • string -- 字符串。
  • i -- 可选。整数。保留的位数。默认值为 0

返回值

数字。转换结果。

示例

_.str.toFixed('0')  // => 0
_.str.toFixed('0', 2)  // => 0
_.str.toFixed('1.77')  // => 2
_.str.toFixed('1.77', 1)  // => 1.8
_.str.toFixed('2.3.6', 2)  // => 2.3
_.str.toFixed('2e3', 3)  // => 2000
_.str.toFixed('1.23foo', 1)  // => 1.2
_.str.toFixed('foo123')  // => NaN

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

1 participant