CJex
CJex
https://github.com/DmitryBaranovskiy/raphael/blob/master/dev/raphael.svg.js#L576 It seems that if the text element have detached from document,say you have a text element on paper,then you do papaer.clear(),now set the text element's attributes will cause this...
This is feature is coming soon
@pmkary This project will be fully rewrited in another compile to js X language(but keep AST compatible), so currently these features would not be made in this version.
It is a special case, because backslash need to represent`"\n"`,`"\t"` in literal string, so a raw`'\'` need to represent as `'\\'`. e.g. `/\\n/` should be represent as `"\\n"` that if...
I have no idea, do you have any suggestion? PS: Current representation conform with JavaScript String literal
我有些可能不太相干的想法,不知道适合不适合在这里说。  其实问题含义并不明晰,你测试的「数值」其实只是JS Number Literal 子集。开头的例子也不合适,哪种应用这么巧恰好允许用户输入JS格式的数字?那个最终版支持非十进制,这在常见的应用场景中并不合适,应该提示错误。 我觉得很多场景下这是个伪需求,即使排除了其它进制,通常面向非工程师的界面中,也很少需要支持科学计数法,可能有部分比如Parser类的工具需要这种功能。我建议明确适用场景,以免误导新手,从架构设计的角度来讲,你所说的「用户还是可以通过修改页面上的元素绕过这些检查」这种情况,前端不需要考虑,而后端正确的做法应该是如果请求的JSON Payload反序列化后得到的不是(合法范围的)Number应该直接抛出400错误,这种防御式编程并不可取。 如果把这些功能拆分成职责明确的子函数或正则表达式再组合使用可能更实用一点。 所以说到底,问题本身很简单,就只是判断 Float isNaN 和 isFinite,其它情形都应该先按具体场景需要转换成 Number 再作判断。
@hax 不好意思我光看实现代码没注意到是「参考input[type=number]的规则」,我说的需求是从产品从用户角度考虑了,如果是UI框架要实现一个替代原生Number Input 功能的组件这种需求那就另说,后面的最终版仍然支持非十进制,可能作者也没想清楚真正的需求,或者也反映出了这种依赖隐蔽内置特性的实现不如正则显式判断格式靠谱。如果问后端,比如Python程序员或者DBA,就`isNumeric`会是什么功能,可能他们会给出不同的理解。后端是应该跟前端保持一致,但实现方式并非必须如此,你说的前端接受后端不接受也只是生造出来的场景 。至于这种情形: > 比如你直接 Number(x) 时,x为空白字符串会返回0。 在现实的应用场景中,必填项可能会先判断空白,给出必填的提示,如果选填就使用默认值,这样代码职责更明确 。 > 然而这问题就是你**怎样把字符串转成 Number** 所以后面我说分成职责明确的子函数或正则表达式再组合使用可能更好一点。如果事先用正则式判断了格式,后面随便怎么转都可以,不需要依赖这些隐蔽的隐式转换,容易翻车(原帖本身就是个翻车的例子)。后面你补充的实现也用了正则,这就是我赞同的,用正则的代码意图更明确。 当然确实有些地方是需要用到这样的`isNumeric`,比如Web框架在反序列化参数Parsing时本身需要最大化处理,这就另说了。总之明确职责更好。 我说的「这种防御式编程不可取」也是被后面的「实际上这个比上面那个正则的版本更好,因为这个还同时处理了非字符串的case」误导了,不管前端后端,即使需要处理原始数据,`isNumeric`也只需要判断字符串格式,不应接受`true, [0],null`这些乱七八糟的情况。 其实我说这些,就是因为看到这种过于宽松的`isOdd`、`isInteger`常常被当成好的例子,变相传播了一种Bad Practice,会误导新手。
> 在这里我不认为说分成子函数或组合正则就一定好,我们用编程语言写的程序,是用于人与人交流的,语义和逻辑表达一致、清晰,便于阅读和理解的代码,往往是好的代码。 @akira-cn 你的这个最终版支持非十进制,`input[type=number]` 并不支持,不知道这是 Feature 还是 Bug,反正我觉得这代码不如 @hax 用正则表达式的代码更易读。 ``` function isNumeric(obj) { return !Number.isNaN(parseFloat(obj)) && Number.isFinite(Number(obj)); } ```
The path can be set in `~/.spacemacs` section `dotspacemacs/user-init`: ```lisp (defun dotspacemacs/user-init () (setq proof-general-path ("/your/local/git/PG/generic/proof-site"))) ``` The cons is that we have to clone and make PG manually, add...