是的,使用正则表达式的 formik 的表单验证不能像预期的那样使用 bangla 字体输入字段
yup form validation with formik using regex not working as expected with bangla font input field
我在注册模型中写了一个 regex
代码,但是当我在带有孟加拉字体的 formik 表单字段中输入时,正则表达式无法验证 bangla unicode
值。
import * as Yup from "yup";
const banglaLang = /^([A-Za-z]|\p{InBengali})$/i;
class RegisterModel {
/**
* Model properties
*/
constructor() {
this.employeeNameBn = "";
}
/**
* Validator schema
*/
validator() {
return Yup.object().shape({
employeeNameBn: Yup.string()
.required("user full name (in Bangla) is a required field")
.matches(banglaLang, "Please type in bangla"),
});
}
}
export const Register = new RegisterModel();
您可以使用
/^[\p{sc=Bengali}\s]+$/u;
详情:
^
- 字符串开头
[\p{sc=Bengali}\s]+
- 出现一次或多次
\p{sc=Bengali}
- 孟加拉字符
\s
- 空白字符
$
- 字符串结尾
u
- 允许使用 Unicode 属性 类 的标志,如 \p{...}
.
参见regex demo。
我在注册模型中写了一个 regex
代码,但是当我在带有孟加拉字体的 formik 表单字段中输入时,正则表达式无法验证 bangla unicode
值。
import * as Yup from "yup";
const banglaLang = /^([A-Za-z]|\p{InBengali})$/i;
class RegisterModel {
/**
* Model properties
*/
constructor() {
this.employeeNameBn = "";
}
/**
* Validator schema
*/
validator() {
return Yup.object().shape({
employeeNameBn: Yup.string()
.required("user full name (in Bangla) is a required field")
.matches(banglaLang, "Please type in bangla"),
});
}
}
export const Register = new RegisterModel();
您可以使用
/^[\p{sc=Bengali}\s]+$/u;
详情:
^
- 字符串开头[\p{sc=Bengali}\s]+
- 出现一次或多次\p{sc=Bengali}
- 孟加拉字符\s
- 空白字符
$
- 字符串结尾u
- 允许使用 Unicode 属性 类 的标志,如\p{...}
.
参见regex demo。