Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式也允许斜杠/&引用;使用现有正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式也允许斜杠/&引用;使用现有正则表达式

Javascript 正则表达式也允许斜杠/&引用;使用现有正则表达式,javascript,regex,Javascript,Regex,我面临着在现有正则表达式中允许斜杠“/”的困难 下面是一个允许点和数字的现有正则表达式: val.match(/^[0-9]+(\.[0-9]{1,2})?$/) 我把它改成 val.match(/^[0-9]+([./][0-9\/]{1,2})?$/) 但是这一个不允许像1.5/384这样的数字同时出现点/周期和斜杠 有人能帮我吗?这应该可以满足您的要求: ^(\d+(?:\.\d{1,2})?\/?(?:\d+\.\d{1,2})?)$ 看到这个了吗 编辑:更正了它与1或1.5不匹配

我面临着在现有正则表达式中允许斜杠“/”的困难

下面是一个允许点和数字的现有正则表达式:

val.match(/^[0-9]+(\.[0-9]{1,2})?$/)
我把它改成

val.match(/^[0-9]+([./][0-9\/]{1,2})?$/)
但是这一个不允许像1.5/384这样的数字同时出现点/周期和斜杠


有人能帮我吗?

这应该可以满足您的要求:

^(\d+(?:\.\d{1,2})?\/?(?:\d+\.\d{1,2})?)$
看到这个了吗


编辑:更正了它与
1
1.5
不匹配的事实。您可以在主图案部分后添加一个可选的非捕获组,以匹配1或0次出现的
/
,后跟1或多个数字:

/^\d+(?:\.\d{1,2})?(?:\/\d+)?$/
                   ^^^^^^^^^^

详细信息

  • ^
    -字符串的开头
  • \d+
    -1个或多个数字
  • (?:\。\d{1,2})
    -可选的
    序列,然后是1或2位数字
  • (?:\/\d+)
    -可选的
    /
    和1+数字序列
  • $
    -字符串结束
如果
/
后面的数字可以以与第一个数字相同的格式浮动:

/^\d+(?:\.\d{1,2})?(?:\/\d+(?:\.\d{1,2})?)?$/
  ^^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^^

也许你想要?是否要匹配
1/384
?如果没有,请使用。
/
后面的数字可以是浮点数吗?是的,我也想匹配1/384。但是它不匹配
1.5/384.6
。@Paul Etienne这不是必需的。那个数字是一个整数。@WiktorStribi你们知道“等一下,必须解决这个问题,它与
1
不匹配。”。与
1
1.5
不匹配,但谁在乎…OP不在乎?或者这真的没有必要?哈哈,我不否认我在寻找一个如此成功的人,但我更希望我的答案是完全正确的:PSure,请不要重复我的答案。