0

ウェブページの電話番号を簡単にクリーンアップしています。

多くの場合、 1-800 -CONTACTSのような人間に優しい電話番号を目にします。私の現在のスクリプトは、数字以外のすべてを取り除きます。

var theValueNumOnly = $.trim($(this).text()).replace(/[^0-9]/g,'');

値は次のようになります: 1800

文字から数字に変換された簡単なスニペットを知っている人はいますか?

4

3 に答える 3

2
var toPhoneNumber = (function () {
    var dict = {
        a: 2, b: 2, c: 2,
        d: 3, e: 3, f: 3,
        g: 4, h: 4, i: 4,
        j: 5, k: 5, l: 5,
        m: 6, n: 6, o: 6,
        p: 7, q: 7, r: 7, s: 7,
        t: 8, u: 8, v: 8,
        w: 9, x: 9, y: 9, z: 9
    }

    return function (str) {
        return str.toLowerCase().replace(/[^\da-z]/g, '').replace(/([a-z])/g, function (v) {
            return dict[v];
        });
    }
}());

toPhoneNumberそれを使用するには、文字列を関数に渡すだけです。

var phoneNumber = toPhoneNumber('1-800-CONTACTS');

これがフィドルです:http://jsfiddle.net/ReGYp/1/

于 2013-01-08T00:44:54.617 に答える
0

直接アプローチ(大文字と小文字を処理します):

phone = "1-800-CONTACS"

phone = phone.replace(/[abc]/gi,  '2');
phone = phone.replace(/[def]/gi,  '3');
phone = phone.replace(/[ghi]/gi,  '4');
phone = phone.replace(/[jkl]/gi,  '5');
phone = phone.replace(/[mno]/gi,  '6');
phone = phone.replace(/[pqrs]/gi, '7');
phone = phone.replace(/[tuv]/gi,  '8');
phone = phone.replace(/[wxyz]/gi, '9');
phone = phone.replace(/[^0-9]/g,  ' ');

console.log(phone)
=> 1 800 2668227
于 2013-01-08T00:48:33.807 に答える
0

これは、PHP ソリューションを提供する、文字を含む電話番号番号の正規表現に関する彼のトピックに関する投稿です。数値に変換される 24 文字のそれぞれをマッピングすることにより、正規表現でこれを行うことができます。おそらく、PHP や Python、またはお気に入りの言語の方が簡単です。

于 2013-01-08T00:43:14.953 に答える