0

私は、すべて大文字、すべて小文字、または両方の非文法的な混合で書かれたテキストを正規化するためのテキスト修正ページを作成しようとしています。

私が現在やろうとしているのは、すべてのピリオド、疑問符、および改行を検索する正規表現を作成し、文字列を各ピリオドまでのすべての単語を含むさまざまな文字列に分割することです。

次に、それらを<span>タグで囲み、CSS:first-letterを使用text-transform:capitalize;して、各文の最初の文字を大文字にします。

最後の段階では、辞書関数を作成して、大文字にするユーザー指定の単語を見つけます。

この質問は、正規表現の記述と文字列への分割に関する部分にのみ関係します。

ここに投稿するにはあまりにも多くの方法を試しましたが、結果はさまざまですが、現在の試みは次のとおりです。

for(var i=0; i < DoIt.length; i++){ 
    DoIt[i].onclick = function(){

        var offendingtext = input.value.toString();
        var keeplinebreaks = offendingtext.replace(/\r?\n/g, '<br />');
        var smalltext = keeplinebreaks.toLowerCase();
        //split at each character I specify
        var breakitup = smalltext.split(/[/.?\r\n]/g);

        breakitup.forEach(function(i){
            var i;
            console.log(i);
            var packagedtogo = document.createElement('span');
            packagedtogo.className = 'sentence';
            packagedtogo.innerHTML = breakitup[i];
            output.appendChild(packagedtogo);
            i++;
        });
    }
}

以前は正しい場所で分割されていましたがundefined、タグ間の出力領域に印刷されていました。私は何日もこれに取り組んでいます。誰か手を貸してください。

文字列を複数の文字列文に分割し、各文字列を html タグでラップするにはどうすればよいですか?

4

1 に答える 1

1

分割の正規表現は問題ありません。いくつかの文字をエスケープするのを忘れただけです:

var str = "SDFDSFDSF?sdf dsf sdfdsf. sdfdsfsdfdsfdsfdsfdsfsdfdsf sdf."
str.split( (/[\.\?\r\n]/g))
//["SDFDSFDSF", "sdf dsf sdfdsf", " sdfdsfsdfdsfdsfdsfdsfsdfdsf sdf", ""]

次のような反復機能ごとに使用します。

    breakitup.forEach(function(element){
        var packagedtogo = document.createElement('span');
        packagedtogo.className = 'sentence';
        packagedtogo.innerHTML = element;//breakitup is undefiend
        output.appendChild(packagedtogo);
        //No need to increase index
    });
于 2013-07-19T23:23:49.010 に答える