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

感觉源代码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
提交
取消
走进SVG
  • 参与学习       52695    人
  • 解答问题       223    个

SVG是HTML5 中矢量图的标记语言,学习后掌握更多的干货

进入课程

感觉源代码SVGEditor.html中有bug

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号