亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我如何修復按鈕以使用 React 和 JavaScript 在禁用和啟用狀態之間切換?

我如何修復按鈕以使用 React 和 JavaScript 在禁用和啟用狀態之間切換?

撒科打諢 2022-12-22 15:47:35
如果電子郵件有效,則啟用添加按鈕。如果電子郵件無效,則添加按鈕將被禁用。下面是我的代碼,function Parent() {    const [email, setEmail] = useState('');    const [isDisabled, setIsDisabled] = React.useState(true);    const regex = /^(?:"[ .a-z0-9!#$%&'*+/=?^_{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_{|}~-]+)*"|[.a-z0-9!#$%&'*+/=?^_{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_{|}~-]+)*)@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;    const isValid = (value)=> {        return regex.test(String(value).toLowerCase());    }    const onEmailChange = (event: any) => {        setEmail(event.target.value);    };    useEffect(() => {        setIsDisabled(!isEmail(email));    }, [email]);    return (        <input            type="text"            onChange={onEmailChange}/>        <button disabled={isDisabled}>add</button>    );}上面的正則表達式完美無缺。但問題是當我輸入電子郵件時說“user@”然后當用戶輸入下一個字符時添加按鈕被禁用說現在電子郵件是“user@i”然后添加按鈕被啟用。現在,當用戶輸入“user@i”時。然后在輸入“user@ii”時禁用和啟用添加按鈕,依此類推。我該如何解決這個問題???有人可以幫我解決這個問題嗎?謝謝。
查看完整描述

1 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

你的問題是正則表達式,它不檢查電子郵件的結尾,你需要用下面的更新你的正則表達式

const regex_email = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

演示:https ://regexr.com/59qcb


查看完整回答
反對 回復 2022-12-22
  • 1 回答
  • 0 關注
  • 94 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號