正则表达式仅允许和仅允许数字

时间:2019-08-15 11:50:03

标签: regex angular typescript input

我正在编写一个RegEx以在输入字段上使用。这样做的目的是让用户仅输入位数字,而不能输入其他任何内容(甚至连点号和逗号都不允许)。 到目前为止,这是我的代码:

RegExp = new RegExp(/^[0-9]$/);

但是,这仍然允许用户键入点和逗号。 我应该做出哪些更改才能只获得数字?

2 个答案:

答案 0 :(得分:1)

您可以使用type = "number"仅允许数字和onkeypress事件来过滤dot控件的input符号:

<input type="number"
   (onkeypress)="return (event.charCode == 8 || event.charCode == 0 || 
   event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 57">

As MDN says:

  类型为

的元素用于让用户输入   数。它们包括内置的验证以拒绝非数字   条目。浏览器可能会选择提供步进箭头,以使用户   使用鼠标或通过简单点击来增加和减少值   用指尖。

答案 1 :(得分:0)

我认为这可能是您所需要的:

[Test]
public void TestRegExDigitsOnly()
{
    var regEx = new Regex("^[0-9]*$");
    regEx.IsMatch("123").ShouldBeTrue();
    regEx.IsMatch("12.").ShouldBeFalse();
    regEx.IsMatch("1.3").ShouldBeFalse();
    regEx.IsMatch("abc").ShouldBeFalse();
}