1

「|aaaaaaaaaaaaaa|aaaaaaaaa|aaaaaaaaaaaa|」のような文字列があります...今は文字「|」を削除したいだけです それらを「/n」に置き換えます。

私はこれらを試してみましたが失敗しました:

function removeSeperator(str){
str = str.replace('|', "\n");
return str;}

function removeSeperator(str){
var rs="";
var i = 0;

for(i=0;i<str.trim().length;i++){
    if(str[i]=="|"){
        rs += str.substring(0, i) + "/n";
        str = str.substring(i+1);
    }
}

return rs;}

私は純粋なjavascriptでそれをしなければなりません.jqueryは許可されていません。

4

4 に答える 4

7

複数の文字を置き換えるには、グローバル修飾子を使用した正規表現が必要です。

var a = "|aaaaaaaaaaaaaa|aaaaaaaaa|aaaaaaaaaaaa|";

var b = a.replace(/\|/g, "\n");

フィドル

次の呼び出し可能な関数として:

function removeSeperator(str){
    return str.replace(/\|/g, "\n");
}
于 2013-03-29T07:51:52.940 に答える
1

問題は、JavaScript の replace メソッドが「|」などの特異値をサポートしていることです。文字を一度だけ置き換えます。反対に、"/\|/g" などの正規表現を使用すると、出現するすべての '|' を置き換えることができます。新しい行で。実際には、コードは次のようになります -

    function replaceString ( str ) {
        cleanedString = str.replace(/\|/g, "\n");
        return cleanedString;
    }
    var theString = "|aaaaaaaaaaaaaa|aaaaaaaaa|aaaaaaaaaaaa|";

    window.alert(replaceString(theString));

出力は次のようになります-

あああああああああああ

ああああああ

ああああああああ

おおよそ、これはあなたが期待しているものです。お役に立てれば!

于 2013-03-29T08:03:24.310 に答える
1

正規表現が必要です:

function removeSeperator(str){
    str = str.replace(/\|/g,'\n');
    return str;
}

フィドル

単純な置換は、最初のエントリに対してのみ機能します。また、同じ名前の関数が 2 つあると、これが実際のコードである場合に問題が発生する可能性があります。

于 2013-03-29T08:04:24.030 に答える
1

正規表現を作成して置換を実行できます。

function removeSeperator(str){
    str = str.replace(/\|/g, "\n");
    return str;
}
于 2013-03-29T07:54:47.937 に答える