TypeError: Cannot read properties of null (reading 'replace')

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 ||

を正規表現より先に書くことがポイント。

無制限に質問可能なプログラミングスクール!

万が一転職できない場合は、転職保障全額返金できるコースもあり!!

無制限のメンター質問対応

 

DMMウェブキャンプでプログラミングを学習しませんか?

独学より成長スピードをブーストさせましょう!

 

まずは無料相談から!

おすすめの記事