2017-01-01 9 views
1

各配列から特定の数値を削除しようとしていますが、成功しません。私はそれをgoogledが、私は似たようなものは何も見つかりませんでした。最初にコンマで配列を作成した後、最初の3文字だけを021とダッシュをarray[i](各値)から削除したかったのです。配列から特定の数字を削除する

$('.numbers').each(function() { 
 
    if ($(this).text().indexOf(',') != -1) { 
 
    var seprate = $(this).text(); 
 
    var array = seprate.split(','); 
 
    $.each(array, function(i, el) { 
 

 
     if (array[i].indexOf("021") != -1) { 
 
     array[i].substr(0,2).replace("021", "") 
 
     } 
 

 
     $('.phonearray').append(array[i]); 
 
    }); 
 
    } 
 
});
.phonearray { 
 
background: lightgreen; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="numbers"> 
 
    02188776021 , 09123074859 , 021-45676543 , 021 -55446021 
 
</div> 
 

 
<div class="phonearray"> 
 

 
</div>

そして私は最初の3つの文字を削除するためにsubstrを使用し、それが動作していません。

+0

'.replace()'は元の文字列を変更しないので、結果を何かに割り当てる必要があります。 – Barmar

答えて

2

replace()オリジナルの文字列は変更されません(JavaScript文字列は不変です)。結果を配列に戻す必要があります。

正規表現の置き換えで、必要な操作を行うことができます。正規表現^021\s*-?は、先頭に021と一致し、恐らく空白文字と-文字が続きます。

.trim()もコンマの周囲のスペースを削除するために使用しました。

$('.numbers').each(function() { 
 
    if ($(this).text().indexOf(',') != -1) { 
 
    var seprate = $(this).text(); 
 
    var array = seprate.split(','); 
 
    $.each(array, function(i, el) { 
 
     var val = el.trim().replace(/^021\s*-?/, ''); 
 
     $('.phonearray').append(val); 
 
    }); 
 
    } 
 
});
.phonearray { 
 
    background: lightgreen; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="numbers"> 
 
    02188776021 , 09123074859 , 021-45676543 , 021 -55446021 
 
</div> 
 

 
<div class="phonearray"> 
 

 
</div>

+0

お返事ありがとうございます – Pedram

1

のは、最初の問題を定義してみましょう: あなたは、カンマで区切られた電話番号を含む文字列を持ち、それぞれの番号

まず考えで見つかった場合は、接頭辞を削除する必要が:

function removePrefixes(input /* string */) { 
    return input.split(',') 
    .map(x => x.trim()) 
    .map(x => x.replace(/\b021\s*/, '')) 
    .join(', ') 
} 

元のテキストを置き換えます。

$('.numbers').text((i, text) => removePrefixes(text)); 

例:

removePrefixes("02188776021 , 09123074859 , 021-45676543 , 021 -55446021") 
// returns "88776021, 09123074859, -45676543, -55446021" 

説明:コンマによって

  1. 分割は、アレイ
  2. に変換周囲スペース(トリム)
  3. を削除開始番号を交換021で、\bは単語境界を意味しますyは、それ
  4. はここから戻って文字列

に収集し、参加\s*空白の後にあなたがやりたいです。

関連する問題