【发布时间】:2020-08-13 04:08:25
【问题描述】:
我正在尝试在 React (044) 456-7890 的正则表达式中验证这种电话号码。
在此处检查代码框CLICK HERE
代码
const telRegExp = "(d{3})s*d{3}-d{4}";
let validateSchema = yup.object().shape({
tel_no: yup.string().matches(telRegExp, "Telephone number is invalid")
});
<InputMask
mask="(999) 999 - 9999"
onChange={handleChange}
onBlur={handleBlur}
>
{() => (
<TextField
label="Telephone Number (Ex: (044) 878 - 3900)"
name="tel_no"
fullWidth
variant="outlined"
helperText={touched.tel_no ? errors.tel_no : ""}
error={touched.tel_no && Boolean(errors.tel_no)}
/>
)}
</InputMask>
【问题讨论】:
-
样本编号是否是您要为所有输入验证的确切格式?
-
@TimBiegeleisen 是的
-
您当前的正则表达式
(d{3})s*d{3}-d{4}是伪造的,因为您没有转义元字符。应该更正为\(\d{3}\)\s*\d{3}-\d{4}。 -
@TimBiegeleisen。试过但同样的事情它仍然输出无效
-
/\(\d{3}\)\s*\d{3}-\d{4}/.test("(044) 456-7890")正在工作。 JS 代码以及您调用正则表达式 API 的方式有问题。
标签: javascript reactjs regex formik