相关疑难解决方法(0)

用于测试固定电话号码模式的最快方法

因此,挑战在于我们正在尝试检测字符串是否与固定电话号码模式匹配,这是一个简单的字符串模式.

模式是:

ddd-ddd-dddd
Run Code Online (Sandbox Code Playgroud)

其中"d"代表十进制数字而减号代表自身," - "

当前用于测试的模式是,但如果感觉没有足够的模式来揭穿错误的格式,则可以增加.

"012-345-6789"
"0124-345-6789"
"012-3456-6789"
"012-345-67890"
"01a-345-6789"
"012-34B-6789"
"012-345-678C"
"012"
Run Code Online (Sandbox Code Playgroud)

我们的目标,我所寻求的答案,是找到执行以最快的速度返回的方法boolean,其中true意味着模式是好的,false意味着该模式是不好的.

这是我目前的解决方案

function matchesPattern(pattern) {
    if (pattern.length !== 12) {
        return false;
    }

    var i = 0,
        code;

    while (i < 12) {
        code = pattern.charCodeAt(i);

        if (i > 8 || i % 4 !== 3) {
            if (code < 48 || code > 57) {
                return false;
            }
        } else if (code !== 45) {
            return false;
        } …
Run Code Online (Sandbox Code Playgroud)

javascript regex jquery underscore.js lodash

5
推荐指数
1
解决办法
657
查看次数

标签 统计

javascript ×1

jquery ×1

lodash ×1

regex ×1

underscore.js ×1