javascript - 正则表达式不适用于可编辑的 Angular Directive(指令)

标签 javascript regex angularjs x-editable

我正在使用 xeditable Angular Directive(指令)。我需要在我的一个字段中使用正则表达式来验证 正十进制值。但是,它无法正常工作。你能告诉我为什么吗?提前致谢。

示例值包括 12,125.25

<span editable-text="user.name" e-form="tableform" e-pattern="/^\d+(\.\d{1,2})?$/">
                {{ user.name || 'empty' }}
 </span>

JSFiddle

最佳答案

您需要修复正则表达式,因为它现在不接受千位分隔符。

使用这个正则表达式:

^\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/

相关文章:

javascript - 递归指令不起作用

javascript - 意外的 "focusout"事件触发

javascript - Jquery Datatables 在 json 表中添加新行

python - 使用正则表达式的 Strip() 函数

javascript - 表单重置后,Angular-Bootstrap 不显示验证工具提示

javascript - 当用户单击/移出文本框时删除错误验证消息

python正则表达式问题

json - 正则表达式删除 JSON 字符串中的空格

Angularjs - 工厂/服务内的 Restangular 调用

javascript - 使用 AngularJS 将除所选单选按钮之外的值设置为 False