
replace
関数を使うと
Error in v-on handler: "TypeError: Cannot read properties of null (reading 'replace')”
とのエラーが表示されてしまう場合。
文字列を置き換える元の値が空の場合は、エラーになってしまう。
nullでもだめ。
let PhoneNumberWithoutHyphen = null
if(this.value.phoneNumber){
//電話番号があればハイフンなしの値も生成
PhoneNumberWithoutHyphen = this.value.phoneNumber.replace( /-/g , "" )
}
let postData = {
PhoneNumberWithoutHyphen:PhoneNumberWithoutHyphen,//ハイフンなし電話番号
};
return postData;
こんな風に、置き換え元の変数がnullじゃない時だけreplace関数が発火するようにすれば大丈夫。
また、バリデーションルールのreplaceで文句を言われるならこんな風に書く。
tel: (v) =>
v == "" || v == null ||
/^(0[5-9]0[0-9]{8}|0[1-9][1-9][0-9]{7})$/.test(
v.replace(/[━.*‐.*―.*-.*\-.*ー.*\-]/gi, "")
) || "電話番号の形式が正しくありません",
v == "" || v == null ||
を正規表現より先に書くことがポイント。