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(/,| |[|]|;/);

我有三个问题:

  • 我丢失了行尾的分号(在 BR 标记之前)-它们应该在 WORDS 数组中独立拆分

  • 包含括号中第一个数字(5 或 12)的字符串也包含左括号

  • 包含括号中最后一个数字(5 或 0)的字符串也包含右括号。

基本上,我正在尝试专门“隔离”任何数字,以便我可以单独增加/修改它们。

对 RegEx 有什么想法吗?

4

2 回答 2

0

我在这里修复了它:http: //jsfiddle.net/jonnycowboy/w4n3W/12我使用了我在另一个stackoverflow问题/答案中找到的方法:'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 回答
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 回答