我正在使用 xeditable Angular Directive(指令)。我需要在我的一个字段中使用正则表达式来验证 正十进制值
。但是,它无法正常工作。你能告诉我为什么吗?提前致谢。
示例值包括 12,125.25
等
<span editable-text="user.name" e-form="tableform" e-pattern="/^\d+(\.\d{1,2})?$/">
{{ user.name || 'empty' }}
</span>
最佳答案
您需要修复正则表达式,因为它现在不接受千位分隔符。
使用这个正则表达式:
^\d{1,3}(?:,\d{3})*(\.\d{1,2})?$
参见 demo
我补充说:
\d{1,3}
- 匹配 1 到 3 位数字(?:,\d{3})*
- 匹配 0 个或多个,
+ 3 位数字的序列。
如果非捕获组不适合您,请删除 ?:
。
如果您不想允许仅输入 0
(即数字仅由 0
组成),请使用
^(?![0,.]+$)\d{1,3}(?:,\d{3})*(\.\d{1,2})?$
参见 demo
关于javascript - 正则表达式不适用于可编辑的 Angular Directive(指令),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31455486/