JS中的用户输入中只允许使用数字、逗号或句点
Allow only digit, comma or dot in the user input in JS
我有一个用户输入,其中只允许使用特定的字符集。也就是说,用户应该只能输入一个数字,可能带有浮点。用户可以使用逗号或句点作为分隔符。
我决定使用JS替换函数来实现这一点。我的方法是用空字符串替换所有与集合不匹配的内容。
我很快就整理出了正则表达式来匹配集合,它是:
^'d+[,.]{0,1}'d+$
我知道这可能不太理想,但这很好,因为无论如何都有服务器端验证。
然而,无论我怎么努力,我都无法找出如何用空字符串替换任何与此正则表达式不匹配的内容。
以下是我如何使用replace:
var cleanInputOut = function (element) {
element.value = element.value.replace(/<RegEx goes here>/g, '')
}
我可能做错了。即使使用非常简单的功能,我也可以——只需用空字符串替换任何非数字,而不是逗号和句点。我在regex中尝试过负前瞻,但不幸的是,我无法使它按我想要的方式工作。
看起来我是用解决的
/[^'d,.]/g
所以功能是
var cleanInputOut = function (element) {
element.value = element.value.replace(/[^'d,.]/g, '')
}
我真的不明白为什么^字符同时用于标记否定集和行的开头,但它似乎起作用了。
我以前尝试过这个正则表达式,它有时表现得很奇怪,但我不确定问题出在正则表达式本身。无论如何,欢迎对该方法或正则表达式提出任何建议。
相关文章:
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 我们如何使用css或JavaScript在i/j上更改句点(点)的颜色
- JavaScript从字符串中删除尾随空格和句点
- 下划线用句点扩展.旋转引号被删除,如何用引号获得它
- 浮点数字问题JavaScript
- javascript或css:如何隐藏后面跟着句点前缀的任何数字"1.文本”"2.文本“"
- 如何提取与前面带句点(.)的同一字符串匹配的字符串?(仅使用正则表达式)
- 如何在 javascript 中使用正则表达式提取句点 (.) 之后的字符串
- 什么'这个代码只允许数字和句点,这是错误的
- Javascript将浮点数字无故强制转换为整数
- 基于jquery中id(其值中有句点)属性的访问值..
- Regex表示用句点分隔的3个3位数的值
- 如何用逗号和句点分隔JavaScript字符串
- 向数字添加百分之一位,该数字可以逗号或句点分隔
- Firefox - 允许在文本字段中全选,同时只允许数字和句点
- 我想找到包括句点和逗号在内的数字,但Regex不适用于javascript
- 格式化输入字段,将前4位数字用句点分隔,将后2位数字用句号分隔
- JS中的用户输入中只允许使用数字、逗号或句点
- Javascript如何允许在删除除数字以外的所有内容的脚本中使用句点
- Regex删除后面没有数字的所有句点