如何更改现有regex以接受逗号
how to change the existing regex to accept commas
可能重复:
正则表达式,用于匹配文本中带或不带逗号和小数的数字
var regex = /^[0-9][0-9]{0,5}$|^[0-9][0-9]{0,5}['.][0-9]$/;
有效值为300030000希望在上面的正则表达式中有逗号。我无法获得
此正则表达式将测试逗号是否位于正确位置:
/^[0-9]{1,3}(,[0-9]{3})*('.[0-9]*)?$/
您可以看到一个在此处键入时进行验证的工作示例:http://jsfiddle.net/jfriend00/u9VRX/
作为解释,正则表达式是:
start of string
1-3 digits
followed by 0 or more sequences of ,nnn where n is a digit
followed by an optional sequence that starts with a period
and consists of 0 or more digits
end of string
如果你不需要逗号,并且无论如何都要解析数字,那么最简单的方法就是先删除任何逗号,从而忽略它们:
var numStr = str.replace(/,/g, "");
如果您想知道当它无效时到底出了什么问题,那么使用纯正则表达式要困难得多。我找不到最简单的方法来解决这个问题,而且它通常也不会告诉你数字出了什么问题,所以我会先使用一些简单的javascript。
function checkValid(str) {
// check for legal characters
if (!str.match(/^[0-9,]+('.[0-9]*)?$/)) {
// illegal characters present
return("illegal_chars");
}
// strip off trailing decimal part
var parts = str.split(".");
if (parts.length > 2) {
// too many periods
return("too_many_periods");
}
// split each comma segment (if there are any)
parts = parts[0].split(",");
if (parts.length > 1) {
for (var i = parts.length - 1; i > 0; i--) {
if (parts[i].length != 3) {
// wrong number of digits between commas
return("wrong_digits_between_commas");
}
}
if (parts[0].length > 3) {
// wrong number of digits in first segment before first comma
return("too many digits before first comma");
}
}
// if you got here without any errors, then all commas are legal
return(""); // indicate success
}
当您在此处键入时,您可以看到此操作:http://jsfiddle.net/jfriend00/W6FnT/
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- Javascript更改图标
- keyup事件处理程序更改焦点不适用于快速键入
- JQuery使计数器每次更改时都会增加
- 下拉选择可自动更改第二个下拉选择
- regex来更改特定字符串
- 如何更改现有regex以接受逗号
- 更改regex以接受带空格或不带空格的电话号码
- 动态更改ng模式regex
- Regex更改,带有不同前缀和后缀表达式的共享子表达式
- Jquery或Javascript-Regex按ID匹配元素并用类似ID更改其他元素
- 如何通过使用regex更改值来获得单选按钮值的总和
- RegEx在VBA和JavaScript中的处理方式有何不同?
- 使用JavaScript regex以编程方式更改所有文件头中的版权年份
- 更改受regex影响的字符串中URL的颜色
- 使用javascript和regex将文本更改为内联TeX
- Javascript:使用regEx一次更改多个字符或一组字符
- 更改(document).ready上受regex影响的字符串的颜色
- 在Javascript中使用regex或indexOf更改字符串中的特定字符(转义字符)
- 如何在HTML表单中创建两组单选按钮,以及在a组中的更改何时会在B组中更改