0

以下の文字列があります。

var sphere1 = CSG.sphere({center: [5, 5, 5], radius: 10, resolution: resolution });<br>
var sphere2 = sphere1.translate([12, 5, 0]);<br>

以下(/,| |[|]|;/を正規表現として使用して分割しようとしています):

var words = $(selector).html().split(/,| |[|]|;/);

3 つの問題があります。

  • 行末 (BR タグの前) のセミコロンを失いました - それらは WORDS 配列で個別に分割する必要があります

  • 括弧内の最初の数字 (5 または 12) を含む文字列には、開き括弧も含まれます。

  • 括弧内の最後の数字 (5 または 0) を含む文字列には、閉じ括弧も含まれます。

基本的に、数値を個別にインクリメント/変更できるように、数値を具体的に「分離」しようとしています。

正規表現のアイデアはありますか?

4

2 に答える 2

0

これはあなたに出発点を与えるかもしれません

http://jsfiddle.net/JqT4k/1/

var str = "var sphere1 = CSG.sphere({center: [5, 5, 5], radius: 10, resolution: resolution }); var sphere2 = sphere1.translate([12, 5, 0]);";

//evaluates each replace individually
function match_eval(m){
    // m is going to be [5, 5, 5] and then [12, 5, 0], you can do with this as you see fit
    return "[0,0,0]";    
}

alert(str.replace(/\[( *\d+ *,?)+\]/g, match_eval));
于 2012-04-19T16:57:33.217 に答える
0

ここで修正しました: http://jsfiddle.net/jonnycowboy/w4n3W/12別のスタックオーバーフローの質問/回答で見つけた方法を使用しました: 'var nums = $(selector).html().match(/[ 0-9]+/g); var words = $(selector).html().split(/[0-9]+/g); newHtml += '' + 単語[0] + ''; for (var i = 0; i < nums.length; i++) { newHtml += '' + nums[i] + ''; newHtml += '' + 単語[i+1] + ''; }' –</p>

于 2012-05-03T02:42:37.047 に答える