跳到主要内容

辅助函数(Helpers)

具有各种辅助方法的模块,提供用于实现 faker 方法的基本操作。


概述

一个特别有用的方法是 {{$helpers.arrayElement(['abc','123'])}},它从数组中返回一个随机元素。这在添加 Faker 不包含的自定义数据时非常有用。


许多方法可以根据各种模式生成字符串:{{$helpers.replaceSymbols('##??**')}}{{$helpers.fromRegExp('[A-Z0-9]{4}-[A-Z0-9]{4}')}}

arrayElement

从给定数组中返回随机元素(跟“枚举”类似)。

参数

名称类型默认值描述
arrayT[]要从中选取值的数组。

返回: T

示例

{{$helpers.arrayElement(['cat','dog','mouse'])}}  // 'cat'

arrayElements

以随机顺序返回给定数组的随机元素的子集。

参数

名称类型默认值描述
arrayT[]要从中选取值的数组。
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 重复 minmax 次。
  • [x-y] => 随机获取 xy 之间的字符(包括 xy)。
  • [x-y]{times} => 随机获取 xy 之间的字符(包括 xy),并重复 times 次。
  • [x-y]{min,max} => 随机获取 xy 之间的字符(包括 xy),并重复 minmax 次。
  • [^...] => 随机获取不在给定范围内的 ASCII 数字或字母字符。(例如,[^0-9] 将获取一个随机的非数字字符)。
  • [-...] => 在范围内包含破折号。必须放在否定字符 ^ 之后和任何字符集之前(如果使用)(例如,[^-0-9] 将不会获取任何数字字符或破折号)。
  • /[x-y]/i => 随机获取 xy 之间的大写或小写字符(包括 xy)。
  • x? => 随机决定是否包含 x
  • [x-y]? => 随机决定是否包含 xy 之间的字符(包括 xy)。
  • x* => 将 x 重复 0 次或更多次。
  • [x-y]* => 将 xy 之间的字符(包括 xy)重复 0 次或更多次。
  • x+ => 将 x 重复 1 次或更多次。
  • [x-y]+ => 将 xy 之间的字符(包括 xy)重复 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'