我试图为单个输入字段链接多个正则表达式。尽管它检查了每个正则表达式,但屏幕上仅显示第一个正则表达式的错误消息。是否有可能在 Zod 中链接正则表达式?如果不是,什么是实现相同结果的良好替代解决方案。这是我的代码片段:
export const Schema = z.object({
fullname: z
.string()
.regex(new RegExp(/^[a-zA-Z]+[-'s]?[a-zA-Z ]+$/), 'Name should contain only alphabets')
.regex(new RegExp(/^[a-zA-Z]+\s+[a-zA-Z]+$/), 'Please enter both firstname and lastname')
.min(2, 'Name should have atleast 2 alphabets'),
});
Run Code Online (Sandbox Code Playgroud)
每种情况都会显示“名称应仅包含字母”----->
我想检查类型文本输入的值是数字还是字符串,如下所示:
<input
type="text"
onChange={(e) => {
const value = e.target.value;
console.log(typeof value);
}}
/>
Run Code Online (Sandbox Code Playgroud)
但是,当我输入文本或数字时,控制台会在这两种情况下记录字符串。
如何检查react js中输入类型文本的值是否为数字?
我正在尝试为 zod 验证编写自定义错误消息。
这是我的架构对象,我在错误消息中传递了它。
const schema: ZodType<FormData> = z.object({
firstName: z.string().nonempty(),
lastName: z.string().nonempty(),
email: z.string().email().min(5).nonempty(),
pin: z.string( { invalid_type_error: "Must contain 4 digitsss "}).nonempty().min(4, "Must be 4 digits").max(4, "Must be 4 digits").regex(pinPattern),
phoneNumber: z.string().nonempty().min(11),
password: z.string().min(8).regex(Passwordregex).nonempty(),
confirmPassword: z.string().min(8).nonempty(),
}).refine(data => data.password === data.confirmPassword, {
message: "Passwords don't match",
path: ['confirmPassword']
})
Run Code Online (Sandbox Code Playgroud)

我尝试过字符串替换方法,但没有得到我想要的结果。
{errors.
<span className='text-xs font-medium text-[#DC2626]'>{errors.firstName.message?.replace('String', 'First Name')}</}
Run Code Online (Sandbox Code Playgroud) 这是我要问的一个例子。
假设我们有两个接口,Cats并且Dogs。如何制作一个可以同时容纳Cats和 的数组Dogs?
interface Cats {
name: string;
age: number;
}
interface Dog {
owner: string;
}
const cat1: Cats = {
name: "Jimmy",
age: 5,
}
const dog1: Dogs = {
owner: "Bobby",
}
// The line below doesn't work how I think it would work
const animalsList: Array<Cats> | Array<Dogs> = [cat1, dog1];
Run Code Online (Sandbox Code Playgroud)
该变量animalsList应该能够同时包含Cats和Dogs,但我收到诸如
“类型Dogs无法分配给类型Array<Cats>”之类的错误
arrays types conditional-statements type-declaration typescript
我正在尝试用 C++ 编写一个缩小的 FizzBuzz 程序,因为我现在正在学习它。我想知道是否有一种速记方式可以说“如果此字符串存在,则返回此字符串,否则,返回下一部分”
在 JavaScript 中,使用||运算符的工作方式与我想的一样:
function fizzbuzz() {
const maxNum = 20; // Simplified down to 20 just for example
for (let i = 1; i <= maxNum; i++) {
let output = "";
if (i % 3 == 0) output += "Fizz";
if (i % 5 == 0) output += "Buzz";
console.log(output || i); // If the output has something, print it, otherwise print the number
}
}
fizzbuzz();Run Code Online (Sandbox Code Playgroud)
当我在 C++ 中尝试这个时,
#include <iostream> …Run Code Online (Sandbox Code Playgroud) 尽管两个日语字符串看起来相同,但为什么在 JavaScript 中进行比较时它们不能给出正确的结果?
\nconst str1 : string="\xe5\xbb\xa3\xe7\x80\xac\xe5\x92\x8c\xe5\xbb\xa3"\nconst str2 : string="\xe5\xbb\xa3\xe7\x80\xa8\xe5\x92\x8c\xe5\xbb\xa3"\nif(str1 === str2){\n console.log('true')\n} else {\n console.log('false')\n}\nRun Code Online (Sandbox Code Playgroud)\n但结果是假的
\nfalse\nRun Code Online (Sandbox Code Playgroud)\n有谁知道为什么请帮助我
\ntypescript ×3
javascript ×2
reactjs ×2
validation ×2
zod ×2
arrays ×1
c++ ×1
fizzbuzz ×1
forms ×1
input ×1
node.js ×1
string ×1
translate ×1
types ×1