【发布时间】:2020-10-09 17:32:33
【问题描述】:
我是正则表达式的新手,在我的项目中,我允许用户以简写形式和完整数字形式输入金额,我使用材料 UI 文本字段进行输入。
例如:
400k - shorthand,
400.2k - shorthand,
4m - shorthand,
500. - should work
500000 - full amount
一些模式用户不应该被允许输入示例是:
4.2.k,
.3k,
4...k
300.k
我写了下面的正则表达式,但它确实允许在数字后输入点。
textValue.match(/^[0-9]*(\.[0-9]{0,2})*([0-9km]{1})$/) && textValue.match(/^[\d]+/)
上面的代码第一个正则表达式验证模式,第二个正则表达式强制用户输入数字,因为数量不能以字符串开头,我写了两个单独的正则表达式,因为我不明白如何将它们放在一个正则表达式中,而那些正则表达式不接受数字后的点。请问谁能给出一个完美的正则表达式来在一个正则表达式中验证上述模式??
提前致谢
【问题讨论】:
-
this 有帮助吗?
-
感谢您的回复,但它确实允许在数字示例 500 之后输入点。应该可以。
-
你想在 500 之后允许一个点吗?
-
是的,兄弟,因为我限制用户在 TextField 中输入任何其他字符,如果我不允许用户输入点,他不能 500.2k,因为我们不允许。
-
5.5也可以匹配吗?
标签: javascript regex reactjs validation material-ui