package Ġcom . stan fit . android . extension . library . string Ċ Ċ import Ġandroid . util . Patterns Ċ import Ġkotlin . contracts . Experimental Contracts Ċ import Ġkotlin . contracts . contract Ċ Ċ /** Ċ Ġ* ĠCheck Ġweb Ġemail . Ċ Ġ* Ċ Ġ* Ġ@ return ĠBoolean Ċ Ġ*/ Ċ @ Opt In ( Experimental Contracts :: class ) Ċ fun ĠString ?. is Email (): ĠBoolean Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġreturns ( true ) Ġimplies Ġ( this @ is Email Ġ!= Ġnull ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis Ġ!= Ġnull Ġ&& ĠPattern s . EMAIL _ ADDRESS . matcher ( this ). matches () Ċ } Ċ Ċ /** Ċ Ġ* ĠCheck Ġweb Ġphone Ġnumber . Ċ Ġ* Ċ Ġ* Ġ@ return ĠBoolean Ċ Ġ*/ Ċ @ Opt In ( Experimental Contracts :: class ) Ċ fun ĠString ?. is Phone (): ĠBoolean Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġreturns ( true ) Ġimplies Ġ( this @ is Phone Ġ!= Ġnull ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis Ġ!= Ġnull Ġ&& ĠPattern s . PHONE . matcher ( this ). matches () Ċ } Ċ Ċ /** Ċ Ġ* ĠCheck Ġweb Ġurl . Ċ Ġ* Ċ Ġ* Ġ@ return ĠBoolean Ċ Ġ*/ Ċ @ Opt In ( Experimental Contracts :: class ) Ċ fun ĠString ?. is Web Url (): ĠBoolean Ġ{ ĊĠĠĠ Ġcontract Ġ{ ĊĠĠĠĠĠĠĠ Ġreturns ( true ) Ġimplies Ġ( this @ is Web Url Ġ!= Ġnull ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġthis Ġ!= Ġnull Ġ&& ĠPattern s . WEB _ URL . matcher ( this ). matches () Ċ }