辅助函数(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'