2016-12-01 2 views
-5

JavaScriptのメイン文字列からサブ文字列を見つけて削除する方法を解明しようとしています。たとえば、私は文字列 "| 1 | 2 | 3 | 4 | 5 |"私はこれからランダムなサブストリングを削除したいと思います。私は連続したサブ文字列に "| 1 | 2 |"と言うことができるときに動作させましたが、 "| 1 | 4 |"のような連続しないサブ文字列を削除する方法はわかりません。もしあなたが私がそれを適切にするのを助けることができたら。あなたが交換する正規表現を試すことができますjavascriptで非連続部分文字列を削除するには

+3

しかし、 '」 | 1 | 4 | "'は部分文字列ではありません... – Oriol

+1

"非連続"部分文字列はありません。なぜあなたは配列を使いませんか?あなたは '1'と' 4'を見つけてその2つのアイテムを削除したいと思うように思えます。 – Xufox

+1

'' | 1 | 2 | 3 | 4 | 5 | ".split( '|')'を実行してみてください。多分、そのフォーマットはより良く動作するでしょう。 –

答えて

1

"|1|2|3|4|5|".replace(/\|(1|4)\|/g,"|") 

あなたが得る、

"|2|3|5|" 

以上、

function replace_non_consecutives(s, subs){ 
    var v = subs.match(/[^|]+/g); 
    var strregex = "\\|(" + v.join("|") + ")\\|"; 
    var re = new RegExp(strregex,"g"); 
    while (s.match(re)) s = s.replace(re,"|"); 
    return s; 
} 

replace_non_consecutives("|1|2|3|4|5|", "|1|2|4|"); 

あなたが得る、

"|3|5|" 
+0

こんにちはこれは、文字列内の連続していない数字に最適です。しかし、| 1 | 2 | | 2 |は削除されません。 – Kostadin

+0

はい、 '| 1 | 2 |'は動作しません.1と2が連続した数字なので、私はそれを修正します –

+1

@Kostadin iは重複した問題を投稿 –

関連する問題