我正在学习svelte,想知道如果我尝试将颜色以外的任何东西作为输入,svelte中是否存在错误颜色处理程序?
const submitHandler = (e) => {
valid = true;
if(e.color != couleur){
valid = false;
}
else {
color = e.target.value;
}
}
虽然要求特定的颜色数据而不提供颜色选择器通常不是很好的用户体验,但这是可能的,也许你有充分的理由。
您可以使用RegEx来检查用户是否提供了有效的颜色代码(假设您指的是十六进制(。这里有一个表达式将为您进行验证,只需使用它创建一个RegExp对象:const regex = new RegExp('^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$')
并检查用户提供的值是否通过了测试regex.test(yourValue)
,或者如果您只是要求六进制代码,而不是之前的#
,则检查regex.test('#' + yourValue)
。也不需要执行e.target.value
,因为您只需将输入绑定到一个变量并使用它进行测试。
这里有一个REPL显示了一种可能的方法
目前还不太清楚你的目标是什么,以及为什么你想在提交时检查输入的有效性,但如果你使用反应声明来检查有效性,这可能对你的用户更好,如本REPL所示。
或者只在这个REPL中检查:blur的有效性。