的用法.在javascript中的regex中
Usage of . in regex in javascript
我有下面的正则表达式,它执行非常基本的验证,只允许整数,不允许任何浮点数和负数。我发现以下表达式是这样做的方法之一:
var reg = new RegExp('^(([0-9]+)|'.[0-9]+)$');
此表达式正确验证以下输入:
validatePercentage(56.67); --> not an integer
validatePercentage(67); --> integer
validatePercentage(-5667); --> should not be negative
但是,我无法理解'''的用法'(这似乎对输出产生了影响)。有人能解释一下正则表达式是如何消除负面输入的吗?提前谢谢。
- 正则表达式中的
.
表示"任何字符" - 正则表达式中的
'.
表示"句点字符" - JavaScript字符串文字中的CCD_ 3表示CCD_
这段代码是尝试使用2,但由于正则表达式是使用字符串构建的(几乎总是错误的),它最终是一个3,转换为1。
正则表达式似乎是在尝试"零或小于一的正整数或正浮点",但被字符串阶段破坏为"零或正整数,其中任何一个前面都可以有任何字符"。
正确的正则表达式可能更像:
var reg = /^[1-9][0-9]+(?:'.0+)?$/
如果你真的想测试一个正整数,那么你可能会更好地使用:
value == parseInt(value, 10) && value > 0
(如果要允许0作为值,则可以>-1)。
要在图案中绘制文字点,必须转义该点,否则该点可能与换行符以外的任何字符匹配。
当您使用带有javascript字符串的对象表示法来定义模式时,必须转义反斜杠,以给出:
var reg = new RegExp('^(([0-9]+)|''.[0-9]+)$');
或
var reg = /^(([0-9]+)|'.[0-9]+)$/;
你也可以写:
var reg = new RegExp(/^(([0-9]+)|'.[0-9]+)$/);
相关文章:
- javascript中url中的Regex参数
- javascript/regex忽略双引号中的分号
- RegEx以匹配字符串中的两个或多个名称
- JavaScript中的RegEx:两个标签之间的内容
- 使用javascript中的捕获组从变量创建regex
- 替换除锚标记Jascript Regex中的URL之外的URL
- Regex中的条件替换
- 如何使用REGEX中的或选项提取和捕获特定的多个单词
- Javascript regex中的lookahead和lookbacking是错误的
- 从Javascript/Regex中的youtube链接中提取视频ID
- 如果(?:foo)已经存在,regex中的(?=foo)又有什么意义呢?
- Javascript RegEx返回如果字符串包含不在RegEx中的字符
- 匹配JavaScript RegEx中的不可见字符
- 匹配javascript regex中的文字特殊字符
- JavaScript检查字符串是否包含regex中的任何单词
- 获得JS Regex中的可选部分
- 匹配RegEx中的第一行内容
- Regex中的相互递归
- 如何在JS中使用Regex中的用户输入作为量词
- 替换regex中的img元素src属性