我使用 react-hook-form 创建了一个表单。我想检查这个表格中输入的名字的字符。
我在模式部分创建了正则表达式,我的控件有效,
但我想阻止输入数字和符号。仅字母(包括土耳其语字符)
我该怎么做?输入掩码库有效吗?如果你能帮忙,我会很高兴。
代码和输出如下。谢谢。
<FormInput
capitalize={{ textTransform: 'capitalize' }}
// control={control}
style="full"
id="name"
type="text"
name="name"
gtagStart={gtagStart}
label="Name*"
onChangeFunc={keyEvent => {
const { value } = keyEvent.target;
const lowerCaseAll = value.toLowerCase();
keyEvent.target.value = lowerCaseAll.charAt(0).toUpperCase() + lowerCaseAll.slice(1);
}}
register={register({
required: {
message: 'Required',
value: true,
},
pattern: {
message: 'Please enter valid name',
value: /^[a-zA-Z\u00C0-\u017F]+(?:\s[a-zA-Z\u00C0-\u017F]+)*$/,
},
})}
error={errors.name}
/>
编辑:我找到了解决方案!感谢所有帮助我回答这个问题的人。
解决方案:使用正则表达式,我在输入中指定了要输入的字符,然后在 onChangeFunc 中定义它们。该函数具有字符控制和大写文本。
onChangeFunc={keyEvent => {
const { value } = keyEvent.target;
const lowerCaseAll = value.toLowerCase();
const replaceAll = lowerCaseAll.charAt(0).toUpperCase() + lowerCaseAll.slice(1);
keyEvent.target.value = replaceAll.replace(/[^a-zA-ZşŞıİçÇöÖüÜĞğ\- ]/g, '');
}}
答案 0 :(得分:-1)
您可以使用以下正则表达式 仅对字母和空格有效
^[a-zA-Z ]*$
查看并告诉我..