我在下面有一个字符串:
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的任何想法?
答案 0 :(得分:0)
这可能会给你一个起点
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; -