addFeeForm.fee只允许输入数字和小数点和负号
时间: 2024-03-08 07:49:50 浏览: 64
你可以使用 JavaScript 正则表达式来限制 `addFeeForm.fee` 只能输入数字、小数点和负号,示例代码如下:
```javascript
// 获取输入框元素
const input = document.querySelector('#addFeeForm input[name="fee"]');
// 给输入框绑定 input 事件
input.addEventListener('input', function() {
// 用正则表达式替换掉非数字、小数点和负号的字符
this.value = this.value.replace(/[^\d.-]/g, '');
});
```
在上面的代码中,我们使用了 `replace()` 函数,将所有非数字、小数点和负号的字符替换为空字符串,从而实现了限制输入的效果。
值得注意的是,在正则表达式中,我们使用了字符集 `[...]` 和元字符 `^`,它们的含义如下:
- `[]` 表示一个字符集,里面可以列出允许出现的字符。例如 `[abc]` 表示字符集中只允许出现字母 a、b、c 中的任意一个。
- `^` 表示取反,放在字符集的开头表示取反。例如 `[^abc]` 表示除了 a、b、c 以外的任意一个字符。
因此,`[^\d.-]` 表示除了数字、小数点和负号以外的任意一个字符。把它作为 `replace()` 函数的第一个参数,就可以替换掉所有非数字、小数点和负号的字符了。
相关问题
DECODE(CBT.ACC_SUBJECT_TYPE,'A',A.FEE_AMOUNT - 0,'E',A.FEE_AMOUNT - 0,0 - A.FEE_AMOUNT)这段代码的意思是什么?
这段代码是一个SQL语句中的DECODE函数,其作用是判断CBT.ACC_SUBJECT_TYPE字段的值,如果其值为'A'或'E',则返回A.FEE_AMOUNT - 0的结果,否则返回0 - A.FEE_AMOUNT的结果。其中A.FEE_AMOUNT是另外一个表A中的字段值。简单来说,这段代码的作用是根据CBT.ACC_SUBJECT_TYPE字段的值计算出一个金额。
SELECT ROUND(AVG(l.DET_ITEM_FEE_SUMAMT),2) norm, MAX(l.DET_ITEM_FEE_SUMAMT) big, MIN(l.DET_ITEM_FEE_SUMAMT) small FROM fee_list_d l, per_path_info p WHERE l.MDTRT_ID = p.mdtrt_id AND DATE_FORMAT(l.FEE_OCUR_TIME,'%Y-%m') >= "2023-07" AND DATE_FORMAT(l.FEE_OCUR_TIME,'%Y-%m') <= "2023-07" AND p.hospcode = "H41162501992" AND l.DISE_CODG = "xhnk08" AND p.adm_dept_code = "01" AND p.adm_doc_code = "1"
根据您的查询条件,您想要从fee_list_d表和per_path_info表中获取以下结果:在2023年7月份,医院编码为"H41162501992",诊断编码为"xhnk08",入院科室编码为"01",入院医生编码为"1"的数据中,计算费用项DET_ITEM_FEE_SUMAMT的平均值(保留两位小数),最大值和最小值。
以下是您的查询语句:
SELECT ROUND(AVG(l.DET_ITEM_FEE_SUMAMT),2) AS norm,
MAX(l.DET_ITEM_FEE_SUMAMT) AS big,
MIN(l.DET_ITEM_FEE_SUMAMT) AS small
FROM fee_list_d l, per_path_info p
WHERE l.MDTRT_ID = p.mdtrt_id
AND DATE_FORMAT(l.FEE_OCUR_TIME,'%Y-%m') >= "2023-07"
AND DATE_FORMAT(l.FEE_OCUR_TIME,'%Y-%m') <= "2023-07"
AND p.hospcode = "H41162501992"
AND l.DISE_CODG = "xhnk08"
AND p.adm_dept_code = "01"
AND p.adm_doc_code = "1"
阅读全文