使用包含括号,分号和空格的RegEx发出拆分字符串

时间:2012-04-19 16:36:22

标签: javascript regex

我在下面有一个字符串:

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的任何想法?

2 个答案:

答案 0 :(得分: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));

答案 1 :(得分:0)

我在这里修复了它:http://jsfiddle.net/jonnycowboy/w4n3W/12我使用了另一个stackoverflow问题/答案中找到的方法:&#39; var nums = $(selector).html()。match(/ [ 0-9] + /克); var words = $(selector).html()。split(/ [0-9] + / g); newHtml + =&#39;&#39; +字[0] +&#39;&#39 ;; for(var i = 0; i&lt; nums.length; i ++){newHtml + =&#39;&#39; + nums [i] +&#39;&#39 ;; newHtml + =&#39;&#39; +字[i + 1] +&#39;&#39 ;; }&#39; -