辅助函数(Helpers)
具有各种辅助方法的模块,提供用于实现 faker 方法的基本操作。
概述
一个特别有用的方法是 {{$helpers.arrayElement(['abc','123'])}},它从数组中返回一个随机元素。这在添加 Faker 不包含的自定义数据时非常有用。
许多方法可以根据各种模式生成字符串:{{$helpers.replaceSymbols('##??**')}} 和 {{$helpers.fromRegExp('[A-Z0-9]{4}-[A-Z0-9]{4}')}}。
arrayElement
从给定数组中返回随机元素(跟“枚举”类似)。
参数
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| array | T[] | 要从中选取值的数组。 |
返回: T
示例
{{$helpers.arrayElement(['cat','dog','mouse'])}} // 'cat'
arrayElements
以随机顺序返回给定数组的随机元素的子集。
参数
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| array | T[] | 要从中选取值的数组。 | |
| max | 数字 | 要选取的最大元素数。 | |
| min | 数字 | 要选取的最小元素数。 |
返回: T
示例
{{$helpers.arrayElements(['cat','dog','mouse'])}} // '["cat"]'
{{$helpers.arrayElements(['1','2','3','4'])}} // '["4"]'
fromRegExp
生成与给定正则表达式类似的表达式匹配的字符串。
此函数不提供对实际正则表达式的完全支持。不支持分组、锚点和字符类等功能。如果您正在寻找一个基于正则表达式随机生成字符串的库,请参阅 randexp.js
支持的模式:
x{times}=> 将x准确重复times次。x{min,max}=> 将x重复min到max次。[x-y]=> 随机获取x和y之间的字符(包括x和y)。[x-y]{times}=> 随机获取x和y之间的字符(包括x和y),并重复times次。[x-y]{min,max}=> 随机获取x和y之间的字符(包括x和y),并重复min到max次。[^...]=> 随机获取不在给定范围内的 ASCII 数字或字母字符。(例如,[^0-9]将获取一个随机的非数字字符)。[-...]=> 在范围内包含破折号。必须放在否定字符^之后和任何字符集之前(如果使用)(例如,[^-0-9]将不会获取任何数字字符或破折号)。/[x-y]/i=> 随机获取x和y之间的大写或小写字符(包括x和y)。x?=> 随机决定是否包含x。[x-y]?=> 随机决定是否包含x和y之间的字符(包括x和y)。x*=> 将x重复 0 次或更多次。[x-y]*=> 将x和y之间的字符(包括x和y)重复 0 次或更多次。x+=> 将x重复 1 次或更多次。[x-y]+=> 将x和y之间的字符(包括x和y)重复 1 次或更多次。.=> 返回一个通配符 ASCII 字符,可以是任何数字、字符或符号。也可以与量词组合使用。 参数
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| pattern | 字符串 | 正则表达式 | 要为其生成匹配字符串的模板字符串/正则表达式。 |
返回: 字符串
抛出: 如果量词中的最小值大于最大值,例如 #{10,5}。如果传入无效的量词符号。
示例
{{$helpers.fromRegExp('#{5}')}} // '#####'
{{$helpers.fromRegExp('#{2,9}')}} // '#######'
{{$helpers.fromRegExp('[1-7]')}} // '5'
{{$helpers.fromRegExp('#{3}test[1-5]')}} // '###test3'
{{$helpers.fromRegExp('[0-9a-dmno]')}} // '5'
{{$helpers.fromRegExp('[^a-zA-Z0-8]')}} // '9'
{{$helpers.fromRegExp('[a-d0-6]{2,8}')}} // 'a0dc45b0'
{{$helpers.fromRegExp('[-a-z]{5}')}} // 'a-zab'
{{$helpers.fromRegExp('/[A-Z0-9]{4}-[A-Z0-9]{4}/')}}// '/RUQN-KAVE/'
{{$helpers.fromRegExp('/[A-Z]{5}/i')}} // '/EJORS/i'
{{$helpers.fromRegExp('/.{5}/')}} // '/...../'
{{$helpers.fromRegExp('/Joh?n/')}} // '/Jon/'
{{$helpers.fromRegExp('/ABC*DE/')}} // '/ABCDE/'
{{$helpers.fromRegExp('/bee+p/')}} // '/beep/'
rangeToNumber
将给定的数字或范围转换为数字的辅助方法。
参数
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| max | 数字 | 范围的最大值。 | |
| min | 数字 | 范围的最小值。 |
返回: 数字
示例
{{$helpers.rangeToNumber}} // '6'
{{$helpers.rangeToNumber(min=1,max=10)}} // '1'
replaceCreditCardSymbols
替换信用卡模式中的符号和模式,包括 Luhn 校验和。
参数
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| string | 字符串 | '6453-####-####-####-###L' | 信用卡格式模式。 |
| symbol | 字符串 | '#' | 要用数字替换的符号。 |
返回: 字符串
示例
{{$helpers.replaceCreditCardSymbols}} // '6453-1529-4797-6717-3847'
{{$helpers.replaceCreditCardSymbols(string='1234-[4-9]-##!!-L')}} // '1234-7-5096-4'
replaceSymbols
逐个符号解析给定的字符串符号,并适当地替换占位符。
#将被替换为数字 (0-9)。?将被替换为大写字母 ('A' - 'Z')*将被替换为数字或字母。
参数
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| string | 字符串 | | 要解析的模板字符串。 |
返回: 字符串
示例
{{$helpers.replaceSymbols('##??**')}} // '24BTX6'
{{$helpers.replaceSymbols('#####')}} // '17608'
{{$helpers.replaceSymbols('?????')}} // 'SYJON'
{{$helpers.replaceSymbols('*****')}} // 'CZ436'
{{$helpers.replaceSymbols('Your pin is: #?*#?*')}} // 'Your pin is: 7UU5NK'
slugify
将给定的字符串转换为 slug。为此,所有空格 ( ) 都将替换为连字符 (-),除点和连字符以外的大多数非单词字符都将被删除。
参数
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| string | 字符串 | | 要转换为 slug 的输入。 |
返回: 字符串
示例
{{$helpers.slugify('abc 123')}} // 'abc-123'
{{$helpers.slugify('Hello world!')}} // 'Hello-world'
slugify
将给定的字符串转换为 slug。为此,所有空格 ( ) 都将替换为连字符 (-),除点和连字符以外的大多数非单词字符都将被删除。
参数
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| string | 字符串 | | 要转换为 slug 的输入。 |
返回: 字符串
示例
{{$helpers.slugify('abc 123')}} // 'abc-123'
{{$helpers.slugify('Hello world!')}} // 'Hello-world'