1

こんにちは私は5つの「|||||」を交換するのに問題があります 1つの「|」に。

var ss = "123|||||456|||||789|||||";
var ww = ss.replace(/[|||||]\W/g, "|");

私が得る出力は

123|||456|||789|||

私が書くべき正しい正規表現は何ですか?ありがとう。

4

1 に答える 1

3

次のことができます。

var ss = "123|||||456|||||789|||||";
console.log(ss.replace(/[|]{5}/g, "|"));

コメントで述べたように、[]は文字クラスを定義し、そこで定義されている文字のいずれかに一致します。たとえば[a-z]、小文字のアルファベットと一致します。

ただし、パイプ()文字と一致させる必要があるだけ|なので、角かっこを削除して、次のようにエスケープできます。

console.log(ss.replace(/\|{5}/g, "|")); 

\パイプはJavaスクリプトの特殊文字であるため、aでエスケープする必要があります。パイプの後のカーリー表記{5}は、一致させたい「前の」の数を定義します。

于 2012-08-16T08:10:50.503 に答える