0

たとえば、次のような文字列があります。09223-2993/120029

を置き換える必要があり、正規表現-を使用する必要があります/

これどうやってするの ?

これは私が作ったもので、置き換えて動作-しますが、再配置する方法が見つかりません/:

    var test = $("#myvalue").val().split("");

    for(var i=0; i < test.length; i++) {
        test[i] = test[i].replace(/-/g, '');
    }

    value2 = test.join("" );

    alert(value2);

ありがとう。

4

5 に答える 5

7

あなたは本当に近いです、あなたがする必要があるのは/あなたの正規表現に追加することだけです

これを行うことができるはずです:

 test[i] = test[i].replace(/[-/]/g, '');

-正規表現に特別なものではないため、/上記のようにバックスラッシュを使用してエスケープするか[]、文字クラスを意味するために の中に配置します。

于 2012-05-28T20:12:48.873 に答える
6

正規表現でリテラルを使用する/には、エスケープする必要があります。そうするように書いてください\/

最終的なスクリプトは次のようになります。

var test = $("#myvalue").val().replace(/[-/]/g,'');
alert(test);

あなたのループ全体は完全に不要だったので、削除します。

于 2012-05-28T20:13:00.667 に答える
0

前に述べたように、スラッシュをとしてエスケープする必要があります\/。ただし、数字ではないすべての文字を削除する方が、より堅牢なアプローチになる可能性があります。

test[i] = test[i].replace(/\D/g, '');

\Dの否定バージョン\d、つまり数字ではありません。

于 2012-05-28T20:23:03.580 に答える
0

文字/は、正規表現で特別な意味を持ちます (ご存知のように、それを囲みます/regex/modifiers)。特殊文字はバックスラッシュでエスケープする必要があります\

test[i].replace(/\//g, 'something');
于 2012-05-28T20:14:40.393 に答える
0

これは値だけを残します。これはそれほど複雑ではないかもしれません

var value = $("#myvalue").val().replace(/[^0-9]/g, '');

alert(value);
于 2012-05-28T20:35:54.000 に答える