Fre*_*e09 5 javascript regex reactjs
我正在学习正则表达式,我想在react app中实现它,所以当我在输入字段上写东西时,我想允许用户只写数字和最大一个空格。此字符串还必须以+字符开头。我的正则表达式工具向我显示了良好的结果,但是在应用程序中我什么都没写。
const handlePhone = ({currentTarget}) => {
let val = currentTarget.value;
// Regular expression
const reg = /^\+\d+/g;
const isNumber = val.match(reg);
if (isNumber || val === '') {
setFieldValue('phone', val);
}
};
Run Code Online (Sandbox Code Playgroud)
我想用这个表达式实现它:以+开头,以后可以写一些数字。
但是在应用程序中,我什么都不能写。为什么此工具与实时匹配有很大不同?
有了这个:
const reg = /^\+\d+( \d+)*$/;
Run Code Online (Sandbox Code Playgroud)
我认为你需要一些非常简单的东西,比如/^\+\d* ?\d*$/:
^\+ 以“+”开头\d* 然后是零个或多个数字? (空格?)然后零或一个空格\d* 然后是零个或多个数字$ 字符串结尾例如
function checkValue(el) {
let re = /^\+\d* ?\d*$/;
document.getElementById('err').textContent = re.test(el.value)? 'good':'bad';
}Run Code Online (Sandbox Code Playgroud)
<input oninput="checkValue(this)"><br>
<span id="err"></span>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |