账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    基于 Ts 的正则匹配代码, 为什么可以传递数组呢 ?
    52
    0
    在最近阅读一段源码的时候发现这里的 val 竟然是数组, 对于结果依旧是正确的, 有大神可以解释解释么 ?/** * RegexTest / 正则匹配 * @param value * @param params */export const regexTest = (value: string[] | string, params: string[] | string | any) => { let args = !(params instanceof Array) ? [params] : params; let val = !(value instanceof Array) ? [value] : value; let re = args[0]; if (!(re instanceof RegExp)) { re = re.split('/'); re = new RegExp(re[1], re[2]); } return re.test(val);}validation.test.tsdescribe('validation', function () { describe('regex match', function () { it('test-number', function () { assert.equal(regexTest(['5'], /\d+/i), true); assert.equal(regexTest('5', /\d+/i), true); }); });});
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 黒色ン诱惑灬 普通会员 1楼

      在 TypeScript 中,可以使用 Array 类型和正则表达式匹配数组元素。这是因为 Array 类型是一个可变数组,可以存储任何类型的数据,包括字符串、数字、布尔值等。同时,Array 类型还提供了一些方法和操作,如 map()filter()join() 等,这些方法和操作都是基于数组元素的类型和模式进行的。

      以下是一个使用 Array 类型和正则表达式匹配数组元素的示例:

      ```typescript const array = [1, 2, 3, 4, 5];

      // 使用 array.map() 方法匹配数组中的每个元素 const filteredArray = array.map(element => element.match(/a/g));

      // 使用 array.filter() 方法匹配数组中的每个元素 const evenArray = array.filter(element => element % 2 === 0);

      // 使用 array.join() 方法将数组元素连接成一个字符串 const joinedArray = array.join(',');

      console.log(filteredArray); // 输出:[1, 3] console.log(evenArray); // 输出:[2, 4] console.log(joinedArray); // 输出:1a, 3a, 2a, 4a, 5a ```

      在上述示例中,我们首先定义了一个包含数字和字母的数组 array。然后,我们使用 Array 类型的 map() 方法和正则表达式 /a/g 对数组中的每个元素进行匹配。/a/g 是一个全局模式,表示匹配所有字母 "a"。在这个模式中,g 是一个全局标志,表示全局匹配,即使元素的名称(在这个例子中是字符串)不匹配模式,也会被匹配。

      接着,我们使用 Array 类型的 filter() 方法和正则表达式 /a/g 对数组中的每个元素进行匹配。/a/g 是一个全局模式,表示匹配所有字母 "a"。在这个模式中,g 是一个全局标志,表示全局匹配,即使元素的名称(在这个例子中是字符串)不匹配模式,也会被匹配。

      最后,我们使用 Array 类型的 join() 方法将数组元素连接成一个字符串。join() 方法接受一个分隔符作为参数,该分隔符将数组元素连接成一个字符串。在这个例子中,我们使用逗号 , 作为分隔符,将数组中的每个元素连接成一个字符串,这样得到的数组元素就会以分隔符连接起来,而不是按照原始顺序。

      通过这些操作,我们可以将数组中的每个元素都匹配到匹配的模式中,并且得到一个新的数组,其中的元素是匹配的。因此,Array 类型和正则表达式匹配数组元素是可以传递的。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部