Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 regex条件不适用于聚合物纸张输入,如何只允许纸张输入小数?_Javascript_Regex_Polymer - Fatal编程技术网

Javascript regex条件不适用于聚合物纸张输入,如何只允许纸张输入小数?

Javascript regex条件不适用于聚合物纸张输入,如何只允许纸张输入小数?,javascript,regex,polymer,Javascript,Regex,Polymer,我试图只允许在纸张上输入小数。以下是我的情况 不应允许e 应允许+,-例如:-23.43 点后只允许有12个值(十进制),例如:107.123456789012 所以我试着低于正则表达式,但都不起作用 ^(?!-0(\.0+)?$)-?(0|[1-9]\d*)(\.\d{1,12})?$ /^(?!-0(\.0+)?$)-?(0|[1-9]\d*)(\.\d+)?$/ <paper-input allowed-pattern="^(?!-0(\.0+)?$)

我试图只允许在纸张上输入小数。以下是我的情况

不应允许e 应允许+,-例如:-23.43 点后只允许有12个值(十进制),例如:107.123456789012

所以我试着低于正则表达式,但都不起作用

   ^(?!-0(\.0+)?$)-?(0|[1-9]\d*)(\.\d{1,12})?$
    /^(?!-0(\.0+)?$)-?(0|[1-9]\d*)(\.\d+)?$/

        <paper-input allowed-pattern="^(?!-0(\.0+)?$)-?(0|[1-9]\d*)(\.\d+)?$">
        </paper-input>
^(?)-0(\.0+)-?(0 |[1-9]\d*)(\.\d{1,12})$
/^(?!-0(\.0+)-?(0 |[1-9]\d*)(\.\d+)$/
上面的正则表达式只包含整数,不接受小数。所以试了一个以下。工作正常。但不知道如何限制十进制。我希望在点(十进制)后只允许12个值


您可以使用此

^[+-]?\d+\.\d{1,12}$
解释

  • ^
    -锚定到字符串的开头
  • [+-]?\d+
    -匹配一个或多个数字
  • \。
    -匹配
  • \d{1,12}
    -匹配1到12位数

const regex=/^\d+\.\d{1,12}$/gm;
常量str=`1.1
0
1.123456789123
a1223
0.1111
1.abv
`;
让m;
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
log(`Found match,group${groupIndex}:${match}`);
});

}
您可以使用此

^[+-]?\d+\.\d{1,12}$
解释

  • ^
    -锚定到字符串的开头
  • [+-]?\d+
    -匹配一个或多个数字
  • \。
    -匹配
  • \d{1,12}
    -匹配1到12位数

const regex=/^\d+\.\d{1,12}$/gm;
常量str=`1.1
0
1.123456789123
a1223
0.1111
1.abv
`;
让m;
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
log(`Found match,group${groupIndex}:${match}`);
});
}

图案 — 用于验证输入值的正则表达式模式

/**
*对于该输入,“EN123456”是一个有效值,
*但“EN123456”或“EN123456”是无效值
*因为有额外的字符
*值与模式不匹配
*/
允许模式 — 限制允许键入的字符的模式
//只接受字母
//只接受数字
//不接受任何内容,因为一个字符不能匹配此模式

我们应该使用:

<paper-input pattern="^(?!-0(?:\.0+)?$)-?(?:0|[1-9]\d*)(?:\.\d+)?$">

我还将捕获组更改为非捕获组,这样效率更高。

:

图案 — 用于验证输入值的正则表达式模式

/**
*对于该输入,“EN123456”是一个有效值,
*但“EN123456”或“EN123456”是无效值
*因为有额外的字符
*值与模式不匹配
*/
允许模式 — 限制允许键入的字符的模式
//只接受字母
//只接受数字
//不接受任何内容,因为一个字符不能匹配此模式

我们应该使用:

<paper-input pattern="^(?!-0(?:\.0+)?$)-?(?:0|[1-9]\d*)(?:\.\d+)?$">



我还将捕获组更改为非捕获组,效率更高。

使用此
^\d+\.\d{1,12}$
no-its-not-working-allowed模式=“[\d+\.\d{1,12}]”。我可以在decimal@CodeManiacyYou missed
$
中输入12个以上的值end@CodeManiac它对PolymerJ不起作用。即使在添加了$:-/之后,您的正则表达式对我来说仍然非常有效。对于哪些值失败?请使用此
^\d+\.\d{1,12}$
no-its-not-working-allowed pattern=“[\d+\.\d{1,12}]”。我可以在decimal@CodeManiacyYou missed
$
中输入12个以上的值end@CodeManiac它对PolymerJ不起作用。即使在添加了$:-/之后,您的正则表达式对我来说仍然非常有效。它失败的原因是什么?它与要求的
-23.43
不匹配,并且与不需要的
000000.00000
匹配。@t同意第一个。但我不确定second one op是否想要它?根据他们的正则表达式,它不匹配前导零
0123.456
和负全零
-0.000
,但它匹配
0.000
(点前仅1个零)这不匹配
-23.43
,并匹配不需要的
000000.00000
。@t同意第一个。但我不确定第二个一op是否想要它?根据他们的正则表达式,它不匹配前导零
0123.456
和负全零
-0.000
,但它匹配
0.000
(点前仅1个零)它不工作。它允许字母而不限制十进制。能够输入12个以上的十进制值
@Toto@Munna:然后添加
pattern allowed=“[0-9.-”
pattern=“^(?)-0(?:\.0+)-?(?:0 |[1-9]\d*)(?:\.\d+)?$”
它不工作。它允许字母而不限制十进制。能够输入12个以上的十进制值
@Toto@Munna:然后在
pattern=“^(?)-0(?:\.0+)-?(?:0 |[1-9]\d*)(?:\.\d+)”
<paper-input pattern="^(?!-0(?:\.0+)?$)-?(?:0|[1-9]\d*)(?:\.\d+)?$">