为了账号安全,请及时绑定邮箱和手机立即绑定

感觉源代码SVGEditor.html中有bug

老师,你这节课的源代码中,这条语句的正则表达式写得有点问题吧。var match = /translate\((\d+),(\d+)\)\srotate\((\d+)\)\sscale\((\d+)\)/.exec(transString);因为这里属性中的数值有可能是正数、负数、小数啊,但是这个表达式只能匹配都是正整数的情况吧,我觉得应该改成这样:var match = /translate\((-?\d+),(-?\d+)\)\srotate\((-?\d+)\)\sscale\((-?\d+\.\d{0,2})\)/.exec(transString);

正在回答

4 回答

另外, createHandle 函数中,设置range值需要放在后面。

handle.setAttribute('min', 0); 
handle.setAttribute('max', 800);
handle.setAttribute('value', value);  // 放在后面

后面。 不然选中时,#shape-attrs 里的range值没有更新。

1 回复 有任何疑惑可以回复我~

改成这样更合适些吧。scale为1时,是整数。

var match = /translate\((-?\d+),(-?\d+)\)\srotate\((-?\d+)\)\sscale\((-?\d(\.\d+)?)\)/.exec(transString);


0 回复 有任何疑惑可以回复我~

我测试过了,你说的是正确的,不过还有个问题,匹配的时候,属性之间是没有空格隔开的

正确的写法:var match = /translate\((-?\d+),(-?\d+)\)rotate\((-?\d+)\)scale\((-?\d+\.\d{0,2})\)/.exec(transString);

0 回复 有任何疑惑可以回复我~

好像是

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

感觉源代码SVGEditor.html中有bug

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信