0

この形式を含む文字列があります

Item 1, Item 2, Another Item、2004」

文字列を , 2004 で分割し、フォーマットして表示したいと思います

<em>Item 1, Item 2, Another Item</em>、2004」

これまでのところ、私はこれを持っています

          var myString = "";
          var new_html = [];
          var splitstring = this.split(',');
               $.each(splitstring, function (idx) {
                   if (new_html.length == 0) new_html.push('<em>' + splitstring[idx] + '</em>');
                   else new_html.push(splitstring[idx]);
               });
                    myString+=("<span class='line"+index+"'>"+new_html.join(',') + "<br/></span>");

これはうまくいきませんが、誰かが私を正しい方向に向けることができれば、それは素晴らしいことです.

4

2 に答える 2

3

このパターンを使用してみてください:

/, (?=\d)/

これはコンマの後にスペースが続く場合に一致しますが、その後に数字が続く場合に限ります。

(?=...)先読みアサーションです。括弧内のパターンが一致した部分文字列の後に表示されるようにしますが、一致には含まれません。

次のように分割関数でこれを簡単に使用できます。

var splitstring = this.split(/, (?=\d)/);
...

4 桁の年のように見える何かが後に続くことを確認したい場合は、次のように使用できます。

/, (?=\d{4})/

または

/, (?=(?:19|20)\d\d)/

あなたの正確なニーズに応じて。

于 2013-10-25T20:44:54.543 に答える
1

明快さとインライン説明のために複数行で書かれています。

var str = "Item 1, Item 2, Another Item, 2004"; 

var arr = str.split(','); //splitting by commas

var num = arr.pop(); //popping the last value '2004'

var result = '<em>'+ arr.join(',') + '</em>' + ',' + num; //joining back again

result: "<em>Item 1, Item 2, Another Item</em>, 2004"

が年である場合は、 (単なる例)numとしてチェックし、条件を使用して特定のことを行うことができます(num < 2099) && (num > 1990)

于 2013-10-25T20:45:52.120 に答える