ကွန်ပျူတာများပရိုဂရမ်းမင်း

PHP ကို (regex) - ကဘာလဲ? ဥပမာများနှင့်စစ်ဆေးနေ regular expressions ကို

မည်သည့်ခေတ်သစ် programming language ကိုစာသားနှင့်အတူအလုပ်လုပ်ကိုင်သည့်အခါ developer များအဆက်မပြတ်စမ်းသပ်အပိုင်းအစများနှင့်ဇာတ်ကောင်အချက်အလက်များ၏စစ်ဆင်ရေး processing ၏အခြားအမျိုးအစားများကိုရှာဖွေရန်နှင့်အစားထိုးလိုချင်သောပုံစံနှင့်အတူလိုက်နာမှုများအတွက် input validation ကို၏ရည်ရွယ်ချက်များနှင့်တွေ့ဆုံရန်။ သင့်ကိုယ်ပိုင် validation ကို algorithms ဖွံ့ဖြိုး, အချိန်ဆုံးရှုံးရန်၎င်း၏ဖွံ့ဖြိုးရေးနှင့်ခေတ်မီရေးအတွက်ကုဒ် compatibility နှင့်ရှုပ်ထွေးစေပါတယ်။

လျင်မြန်စွာအင်တာနက်ဖွံ့ဖြိုးရေးနှင့် Web-ဒီဇိုင်းဘာသာစကားများဒီကုဒ်များအတွက်လိုအပ်သောနိမ့်ဆုံးပမာဏကိုနှင့်အတူစာသားကိုအပြောင်းအလဲနဲ့၏စွယ်စုံများနှင့်ကျစ်လစ်သိပ်သည်းနည်းလမ်းများ၏ဖန်တီးမှုလိုအပ်သည်။ ဒါဟာအဘယ်သူမျှမချွင်းချက်ဖြစ်ပါတယ်အရင်ကဆိုရင်နဲ့ PHP ဘာသာစကား၏ပရော်ဖက်ရှင်နယ် developer များအကြားရေပန်းစားသည်။ စာသားကိုင်တွယ်များ၏တာဝန်ရိုးရှင်းနှင့်သောင်းချီနှင့်လိုင်းများရာပေါင်းများစွာများအတွက်ကုဒ်လျှော့ချရန်စာသားတင်းပလိတ်များအဖြစ်ပုံမှန်စကားရပ်ဘာသာစကား။ ပွဿနာမြားစှာကမပါဘဲမှာအားလုံးဖြေရှင်းမရနိုင်ပါ။

PHP ကိုအတွက်ပုံမှန်ဖော်ပြချက်

« ereg »« mb_ereg »နှင့်« preg » - PHP ကိုဘာသာစကားသုံးမျိုး regular expressions ကိုအတူလုပ်ကိုင်ဘို့ယန္တရားများရှိပါတယ်။ အသုံးအများဆုံးကို interface « preg »အဘယ်သူ၏လုပ်ဆောင်ချက်များကိုမူလ PHP ကိုအထုပ်ထဲမှာထည့်သွင်းထားတဲ့ Perl ဘာသာစကား, များအတွက်တီထွင် PCRE ပုံမှန်စကားရပ်ထောက်ခံမှုများစာကြည့်တိုက်မှ access ကိုပေးဖြစ်ပါတယ်။ , ပေးထားသောစာသားကို string ကိုတိုက်ဆိုင်သည့်အတွက်လုပ်ဆောင်ချက်များကို Preg-ရှာကြံ regular expressions ကို၏ဘာသာစကားကိုအတွက်အချို့သောပုံစံအရသိရသည်။

syntax အခြေခံ

တိုတောင်းတဲ့ဆောင်းပါး၏အစိတ်အပိုင်းတစ်ရပ်အဖြစ်ဒီများအတွက်အထူးစာပေလည်းမရှိ, အသေးစိတျထဲမှာတစျခုလုံးကိုပုံမှန်စကားရပ် syntax ကိုဖော်ပြရန်မဖြစ်နိုင်ဘူး။ ကျနော်တို့ developer များအတွက်အခွင့်အလမ်းကိုပြသနှင့်ကုဒ်ဥပမာနားလည်ရန်သာအဓိကဒြပ်စင်ကိုတင်ပြ။

PHP ကိုခုနှစ်မှာပုံမှန်စကားရပ်တရားဝင်အလွန်ခက်ခဲသတ်မှတ်နှင့်ထို့ကြောင့်ဖော်ပြချက်ရိုးရှင်းနေသည်။ တစ်ဦးကပုံမှန်စကားရပ်စာသား string ကိုဖြစ်ပါတယ်။ ဒါဟာဆက်ကပ်အပ်နှံ separator template ကိုကကိုင်တွယ်ရန်လမ်းကိုညွှန်ပြသည့်အထူးပြုပါဝင်ပါသည်။ ပုံစံများအမျိုးမျိုးအခြားနည်းလမ်းများနှင့်အထပ်ထပ်အတွက်ဖြစ်နိုင်ပါ့မလားပါဝင်။

ဥပမာအားဖြင့်, စကားရပ် / \ ဃအတွက် {3} - \ ဃ {2} - \ ဃ {2} / မီတာ Divide "/", အ template ကိုအားဖြင့်နောက်တော်သို့လိုက်သည်နှင့်သင်္ကေတ«မီတာ»အဆိုပါအထူးပြုဖြစ်ပါတယ်။

regular expressions ကိုအားလုံးပါဝါ Meta-ဇာတ်ကောင်ကို အသုံးပြု. encoded ဖြစ်ပါတယ်။ "\" - အဓိကဘာသာစကား metacharacter ဟာဘယ်ဘက်မျဉ်းစောင်းဖြစ်ပါတယ်။ ဒါဟာဆန့်ကျင်ဘက် (ဆိုလိုသည်မှာ။ အီးသာမန်ဇာတ်ကောင်သံခိတ်နှင့်အပြန်အလှန်သို့ကူးပြောင်း) ရက်နေ့တွင်ဇာတ်ကောင်အောက်ပါအမျိုးအစားကိုပြောင်းလဲစေပါသည်။ နောက်ထပ်အရေးကြီးတဲ့ metacharacter တစ်ဖြောင့်မျဉ်းကြောင်းဖြစ်ပါတယ်« | »သည်အခြားရွေးချယ်စရာ template ကိုသတ်မှတ်ပါတယ်။ Meta-ဇာတ်ကောင်များ၏နောက်ထပ်ဥပမာ:

^ အရာဝတ္ထုတစ်ခုသို့မဟုတ် string ကို Start
( subpattern Start
) အဆုံး subpattern
{ quantifier Start
} အဆုံး quantifier
\ ဃ 9 0 ကနေဒဿမဂဏန်း
\: D နံပါတ်မပေးကြောင်းမဆိုဇာတ်ကောင်
\ s ကို အချည်းနှီးသောသင်္ကေတ, အာကာသ, tab ကို,
\ w သင်္ကေတအဘိဓါန်

သီးခြားတရားဝင်ဇာတ်ကောင်ဒါကွဲပြားခြားနားကြသည်နေရာ XYZ နှင့် ABC ရုပ်သံ၏ဟူသောအသုံးအနှုနျးအဖြစ်ထည့်သွင်းစဉ်းစားမှာ PHP, regular expressions ကို processing, အာကာသ။

subpatterns

ကွင်းများက PHP ကိုပုံမှန် subpatterns ၌၎င်း, သူတို့တစ်ခါတစ်ရံ "subexpressions" ဟုခေါ်ကြသည်။ အောက်ပါလုပ်ဆောင်ချက်များကိုလုပ်ဆောင်:

  1. ခွဲဝေအခြားနည်းလမ်း။ ဥပမာ, အပူပုံစံ (တစ်ခုခု | ငှက် |) သည်စကားလုံးများကို "အပူ", "Firebird" နှင့် "ပူ" နဲ့တိုက်ဆိုင်။ ထိုအခါကွင်းခတ်ခြင်းမရှိဘဲကသာတစ်ဦးအချည်းနှီးသော string ကို "ငှက်" နှင့် "ပူ" ဖြစ်လိမ့်မည်။

  2. "အံ့မခန်း" subpattern ။ ဒါကပုံစံ substring ကိုက်ညီလျှင်, အားလုံးပွဲပြန်လည်ရောက်ရှိဆိုလိုသည်။ ရှင်းလင်းပြတ်သားမှုအတွက်ကျနော်တို့ဥပမာတစ်ခုပေးပါ။ အောက်ပါပုံမှန်စကားရပ်ပေးထားသော: (| ကိုရွှေချထားတဲ့) (တံဆိပ် | (ရွှေဖလား)) အနိုင်ရသူအားလက်ခံတွေ့ဆုံ - နှင့်ပွဲစဉ်များအတွက်ညှို့ "ဟုအဆိုပါဆုရှင်တစ်ဦးရွှေတံဆိပ်ရရှိသွားတဲ့။ " ကနဦးထားသောစာပိုဒ်တိုများအပြင်, ရှာဖွေရေးရလဒ်များကိုထုတ်ပေးပါလိမ့်မည်: "ရွှေတံဆိပ်ဆု", "ဆုတံဆိပ်", "ကိုရွှေ" ။

အော်ပရေတာအထပ်ထပ် (kvadrifikatory)

ပုံမှန်စကားရပ်ပြုစုခုနှစ်တွင်နံပါတ်များနှင့်သင်္ကေတများအထပ်ထပ်ခွဲခြမ်းစိတ်ဖြာဖို့မကြာခဏလိုအပ်ပေသည်။ ဤသည်မှာပြဿနာတစ်ခုလျှင်မဟုတ်အထပ်ထပ်အများကြီးတော့မဟုတ်ပါဘူး။ သို့သော်လည်းအဘယ်သို့ကျနော်တို့ကသူတို့အရေအတွက်အတိအကျကိုမသိရပါဘူးတဲ့အခါမှာလုပ်ဖို့? ဤကိစ္စတွင်အထူး metacharacters သုံးစွဲဖို့လိုအပ်ပေသည်။

အရေအတွက်ကိုသတ်မှတ် metacharacters - kvadrifikatory အသုံးပြုသောအထပ်ထပ်၏ဖော်ပြချက်သည်။ Kvadrifikatory နှစ်ခုအမျိုးအစားများဖြစ်ကြသည်:

  • ကွင်းခတ်ထဲမှာဘုံ;
  • လျှော့ချ။

နိမ့်ဆုံးနှင့်ထိုကဲ့သို့သော x ကို {2.5} အဖြစ်မသန်စွမ်းပဲနှစ်ခုနံပါတ်များ, ၏ပုံစံအတွက်ခွင့်ပြုအထပ်ထပ်ဒြပ်စင်၏အမြင့်ဆုံးအရေအတွက်အားဖြင့်တို့ထိယေဘုယျ quantifier ။ အထပ်ထပ်အများဆုံးအရေအတွက်သည်ကိုမသိရလျှင်, ဒုတိယအငြင်းအခုံမသတ်မှတ်ထားပါသည်: x ကို {2} ။

အတိုကောက် quantifiers မလိုအပ်သော Overload syntax ကိုရှောင်ရှားနိုင်ရန်အတွက်အထပ်ထပ်၏အသုံးအများဆုံးများအတွက်သင်္ကေတများဖြစ်ကြသည်။ အများအားဖြင့်သုံးဖြတ်တောက်မှုရှိပါတယ်:

1. * - သုညသို့မဟုတ်ထိုထက်ပိုအထပ်ထပ်, {0,} နဲ့အတူတူပဲဖြစ်၏။

2. + - တဦးတည်းသို့မဟုတ်ထိုထက်ပိုအထပ်ထပ်, ဆိုလိုသည်မှာ {1} ...

3. ? - သုညသို့မဟုတ်တစ်ဦးတည်းသာထပ် - {0,1} ။

ဥပမာ regex

regular expressions ကိုလေ့လာသင်ယူသောသူတို့အဘို့, ဥပမာ - ကိုအကောင်းဆုံးဖတ်စာအုပ်။ ကျနော်တို့ကြိုးစားအားထုတ်မှု၏အနိမ့်ဆုံးနှင့်အတူ၎င်းတို့၏အခွင့်အလမ်းများကိုပြသသောအနည်းငယ်ပေးပါ။ အားလုံးကုဒ် PHP ကို 4.x နှင့်အထက်ဗားရှင်းတွေနဲ့အပြည့်အဝလိုက်ဖက်သည်။ အပြည့်အဝကျွန်တော်အပြည့်အဝ syntax စဉ်းစားထားတဲ့ "regular expressions ကို", J ကို .. Friedl အားဖြင့်စာအုပ်အကြံပြုနှင့် PHP ကို, ဒါပေမယ့်လည်း Python ကို, Perl, Mysql, Java ပတ္တမြား, နှင့် C # အဘို့မသာ regular expressions ကိုနမူနာရှိပါတယ်အားလုံးဘာသာစကား features တွေ၏ syntax နှင့်အသုံးပြုမှုနားလည်ရန်။

validation, E-mail လိပ်စာ

Task ကို။ အဆိုပါဧည့်လိပ်စာအီးမေးကိုမေတ္တာရပ်ခံသောတခုတခုအပေါ်မှာအငျတာနကျစာမကျြနှာရှိပါသည်။ ပုံမှန်စကားရပ်မက်ဆေ့ခ်ျပေးပို့ခြင်းမပြုမီလိပ်စာများ၏မှန်ကန်မှုစစ်ဆေးရမည်။ check သတ်မှတ်ထားသောစာတိုက်ပုံးအမှန်တကယ်တည်ရှိခြင်းနှင့်မက်ဆေ့ခ်ျများလက်ခံရရှိကြောင်းအာမမခံနိုင်ပါဘူး။ ဒါပေမယ့်တတ်နိုင်သမျှသိသာမှားယွင်းတဲ့လိပ်စာများထွက်ပေါင်းပင်။

ဆုံးဖြတ်ချက်။ မည်သည့် programming language ကိုနှင့်ဝသကဲ့သို့, PHP ကိုအတွက် regex အီးမေးလ်ကို-လိပ်စာစိစစ်အတည်ပြုကွဲပြားခြားနားတဲ့နည်းလမ်းတွေထဲမှာအကောင်အထည်ဖော်နိုင်ပါတယ်, ဤဆောင်းပါးအတွက်ဥပမာနောက်ဆုံးသာရှေးခယျြမှုမရှိကြပေ။ ထိုကွောငျ့, တစ်ဦးချင်းစီအမှု၌, ငါတို့ programming နဲ့တိကျတဲ့အကောင်အထည်ဖော်မှုဆော့ဖ်ဝဲရေးသားသူအပေါ်လုံးဝမူတည်သည့်အခါအကောင့်ထဲသို့ခေါ်ဆောင်သွားခံရဖို့လိုအပျကွောငျးလိုအပ်ချက်များကိုစာရင်းတစ်ခုပေးရလိမ့်မည်။

ထို့ကြောင့်မှန်ကန်သော email စမ်းသပ်သောစကားရပ်အောက်ပါအခြေအနေများစစ်ဆေးသင့်:

  1. စတင်အတွင်းရှိနေခြင်းဟာ @ သင်္ကေတလိုင်းနှင့်မျှမကွာဟချက်ရှိပါသည်။
  2. အဆိုပါ @ သင်္ကေတ၏လိပ်စာ၏ဒိုမိန်းအပိုင်းဒိုမိန်းအမည်များကိုသာလက်ခံနိုင်သောအက္ခရာများပါဝင်သည်။ အလားတူအသုံးပြုသူရဲ့နာမညျကိုသက်ဆိုင်သည်။
  3. username ကိုစစ်ဆေးနေသည့်အခါထိုကဲ့သို့သောပေယျာလသို့မဟုတ်ဒေါင်လိုက်လိုင်းအဖြစ်အထူးအက္ခရာများ၏ရှေ့မှောက်တွင်ဆုံးဖြတ်ရန်လိုအပ်သည်။ ထိုသို့သောသင်္ကေတများအန္တရာယ်ရှိတဲ့ဖြစ်ကြပြီး SQL-ဆေးထိုးကြောင်းတိုက်ခိုက်မှု၏ထိုကဲ့သို့သောမျိုး၌ပါရှိသောနိုင်ပါသည်။ လိပ်စာများကိုရှောင်ကြဉ်ပါ။
  4. username များ string ကိုအတွင်းပထမဆုံးဒါမှမဟုတ်နောက်ဆုံးဇာတ်ကောင်မကျမည်အကြောင်းအရာ, တစ်ဦးတည်းသာမှတ်ခွင့်ပြုပါ။
  5. အဆိုပါ domain name ကိုခြောက်လဇာတ်ကောင်ထက်မှာအနည်းဆုံးနှစ်ခုနှင့်မပိုပါဝင်ရပါမည်။

ဥပမာအားဖြင့်ဤအခွအေနအပေါငျးတို့သအောက်ပါပုံတွင်တွေ့မြင်နိုင်ပါသည်အကောင့်သို့ယူ။

တစ်ဦး URL ကို၏ validation

Task ကို။ သတ်မှတ်ထားသောစာသားကို string ကိုခိုင်လုံသောရှိမရှိ Check လိပ်စာ URL ကို။ ပြီးတာနဲ့နောက်တစ်ကြိမ်ကျနော်တို့ regular expressions ကို URL ကို-စစ်ဆေးခြင်းကိုအမျိုးမျိုးသောနည်းလမ်းတွေနဲ့အကောင်အထည်ဖော်နိုင်သတိပြုပါ။

ဆုံးဖြတ်ချက်။ အောက်မှာဖေါ်ပြတဲ့အတိုင်းကျွန်တော်တို့ရဲ့နောက်ဆုံးဗားရှင်းဖြစ်ပါသည်:

/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /

ယခုဆွဲသုံးပြီးပိုပြီးအသေးစိတ်အတွက်၎င်း၏အစိတ်အပိုင်းများကိုခွဲခြမ်းစိတ်ဖြာ။

ပြောဆိုချက်ကို 1 URL ကိုမဆိုဇာတ်ကောင်များမပြုလုပ်သင့်မဖြစ်မီ
ပြောဆိုချက်ကို 2 အဆိုပါမဖြစ်မနေရှေ့ဆက်« http »၏ရှေ့မှောက်တွင်စစ်ဆေး
ကို item 3 အဘယ်သူမျှမသင်္ကေတများရှိရမည်
ပြောဆိုချက်ကို 4 အဲဒီမှာ« s ကို»« https »တစ်ဦးလုံခြုံဆက်သွယ်မှုမှ URL ကိုမှတ်ပါလျှင်
ပြောဆိုချက်ကို 5 သည် "//" ၏လိုအပ်သောသောအဘို့ကို
ပြောဆိုချက်ကို 6 အဘယ်သူမျှမဇာတ်ကောင်
စ။ 7-9 ယင်းအတည်ပြု ပထမဦးဆုံးအဆင့်ကိုဒိုမိန်း နှင့် point ရဲ့ရှေ့မှောက်တွင်
p.10-13 ဒုတိယအဆင့်ကိုရေးသားခြင်း၏ဒိုမိန်းနှင့်အမှတ်အတည်ပြု
p.14-17

file ကိုဖွဲ့စည်းပုံ URL ကို - တစ်ဂဏန်းများ၏အစု, စာလုံး, underscores, ဒက်ရှ်, အစက်, အဆုံးမှာမျဉ်းစောင်း

အဆိုပါခရက်ဒစ်ကဒ်နံပါတ်များကို Check

Task ကို။ သငျသညျအသုံးအများဆုံးငွေပေးချေမှုစနစ်များ၏ထဲသို့ဝင်ခရက်ဒစ်ကဒ်နံပါတ် validation ကိုအကောင်အထည်ဖေါ်ရန်လိုအပ်သည်။ သာကတ်များတစ်မူကွဲ ဗီဇာနှင့်မာစတာကတ်။

ဆုံးဖြတ်ချက်။ ဟူသောအသုံးအနှုနျးဖန်တီးသောအခါသင်အကောင့်ထဲသို့ input ကိုအခန်းတစ်ခန်းထဲမှာကွာဟချက်ရဲ့ဖြစ်နိုင်ချေရှိနေခြင်းယူဖို့လိုအပ်ပါတယ်။ မြေပုံပေါ်တွင်အဆိုပါဂဏန်းပိုမိုလွယ်ကူစာဖတ်ခြင်းနှင့်သတ်ပုံများအတွက်အုပ်စုများသို့ခွဲခြားထားတယ်။ ဒါကြောင့်ပုဂ္ဂိုလ်တစ်ဦး (ဆိုလိုသည်မှာ။ အီးကဖေးတွေမှာအသုံးပြုခြင်း) ဒီလမ်းအတွက်နံပါတ်ရိုက်ထည့်ဖို့ကြိုးစားနိုင်သောသဘာဝပါပဲ။

အကောင့်ထဲသို့ဖြစ်နိုင်သောနေရာများသို့မဟုတ် hyphens ကိုကြာမယ့်ကမ္ဘာလုံးဆိုင်ရာစကားရပ်ရေးထားရုံဂဏန်း မှလွဲ. အားလုံးဇာတ်ကောင်စှနျ့ထက်ပိုမိုရှုပ်ထွေးသည်။ ထို့ကွောငျ့ကြှနျုပျတို့သဂဏန်း မှလွဲ. အားလုံးဇာတ်ကောင်ဖယ်ရှားပေးသောသံခိတ်စကားရပ် / D ကိုအသုံးပြုအကြံပြုပါသည်။

အခုဆိုရင်သင်စစ်ဆေးမှုများအရေအတွက်တိုက်ရိုက်သွားနိုင်ပါတယ်။ အားလုံးကုမ္ပဏီများ, ခရက်ဒစ်ကဒ်ထုတ်ပေးသူကုမ္ပဏီများထူးခြားတဲ့အရေအတွက်ကိုပုံစံကိုအသုံးပြုပါ။ ဥပမာမှာသူကအသုံးပြုသည်ကို၎င်း, client ကိုကုမ္ပဏီ၏အမည်ကိုရိုက်ထည့်ရန်မလိုအပ်ပါဘူး - ဒါကြောင့်အရေအတွက်အားဖြင့်ဆုံးဖြတ်သည်။ ဗီဇာကတ်များအမြဲတမ်းနံပါတ်များကို 4 နဲ့စတင်နဲ့ 13 သို့မဟုတ် 16 ဂဏန်းတစ်အရှည်ရှိသည်။ MasterCard ကိုရလဒ်အဖြစ်ရှည်အရေအတွက်က 16 နှင့်အတူ 51-55 များ၏အကွာအဝေးအတွင်းစတင်ကျနော်တို့အောက်ပါစကားရပ်ရ:

အမိန့် processing ခင်မှာနောက်ထပ် Luhn algorithm ကိုအပေါ်တွက်ချက်သောအရေအတွက်၏နောက်ဆုံးဂဏန်းကိုစမ်းသပ်နိုင်ပါတယ်။

အတည်ပြုဖုန်းနံပါတ်ကို

Task ကို။ အဆိုပါထဲသို့ဝင်ဖုန်းနံပါတ်များ၏မှန်ကန်မှုကိုစစ်ဆေးခြင်း။

ဆုံးဖြတ်ချက်။ ဂဏန်းအရေအတွက်ထဲမှာ fixed နှင့်မိုဘိုင်းတယ်လီဖုန်းနံပါတ်များကိုဖုန်းနံပါတ်မှန်ကန်စွာမဖြစ်နိုင်, သိသိသာသာတိုင်းပြည်ပေါ် မူတည်. ကွဲပြားဒါကြောင့်တစ်ကမ္ဘာလုံးအတိုင်းအတာ regular expressions ကိုသုံးပြီးစစ်ဆေးပါ။ သို့သော်နိုင်ငံတကာနံပါတ်များတစ်တင်းကျပ်သောပုံစံနှင့်ပုံစံစစ်ဆေးနေဘို့ပြီးပြည့်စုံသောရှိသည်။ ပို. ပင်ဒါကြောင့်ပိုပိုပြီးအမျိုးသားရေးတယ်လီဖုန်းအော်ပရေတာတူညီသောစံတွေ့ဆုံရန်ကြိုးစားနေကြပါတယ်သော။ အောက်မှာဖေါ်ပြတဲ့အတိုင်း ROOM တွင်ဖွဲ့စည်းပုံဖြစ်ပါသည်:

+ CCC.NNNNNNNNNNxEEEE, ဘယ်မှာ:

- ကို C - 1-3 ဂဏန်းပါဝင်သည်ဟုတိုင်းပြည်ကုဒ်ဖြစ်ပါတယ်။

- N ကို - 14 ဂဏန်းနံပါတ်တက်။

- E - optional ကို extension ကို။

Plus အားတစ်ခုမရှိမဖြစ်ဒြပ်စင်ဖြစ်ပြီး, extension ကိုလိုအပ်တဲ့အခါမှသာနိမိတ်လက္ခဏာ X ကိုပစ္စုပ္ပန်ဖြစ်ပါတယ်။

ရလဒ်အဖြစ်ကျနော်တို့အောက်ပါစကားရပ်ရှိသည်:

^ \ + [0-9] {1,3 } \ [0-9] {4,14} ။ (: X + ။ ) $?

အကွာအဝေးအတွင်းနံပါတ်များ

Task ကို။ ဒါဟာအချို့အကွာအဝေး၏တိုက်ဆိုင်မှု integer ဖြစ်တဲ့အတွက်သေချာစေရန်လိုအပ်ပေသည်။ ထို့အပြင်ကပုံမှန်စကားရပ်အကွာအဝေးကနေမှသာနံပါတ်များကိုတွေ့ရှိရန်လိုအပ်ပေသည်။

ဆုံးဖြတ်ချက်။ ဤတွင်အသုံးအများဆုံးဖြစ်ပွားမှုအချို့ကိုအနည်းငယ်အသုံးအနှုန်းတွေနေသောခေါင်းစဉ်:

1 ကနေ 24 နာရီကိုဆုံးဖြတ်ရန် ^ (1 [0-2] | [1-9]) $
လ 1-31 အတွက်နေ့ ^ (3 [01] | [12] [0-9] | [1-9]) $
စက္ကန့်သို့မဟုတ်မိနစ် 0-59 ^ [1-5] [0-9] $
1 ကနေ 100 အထိတစ်ဦးကနံပါတ်တစ်ခု * (100 |? [1-9] [0-9]) $
တစ်နှစ် 1-366 ၏နေ့ ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $

ရှာရန်အိုင်ပီ-လိပ်စာများ

Task ကို။ ဒါဟာပေးထားသော string ကို 000.000.000.000-255.255.255.255 ကနေအကွာအဝေးအတွက် IPv4 format နဲ့မှန်ကန်သည့် IP-address ကိုရှိမရှိဆုံးဖြတ်ရန်လိုအပ်သည်။

ဆုံးဖြတ်ချက်။ PHP ကို၏ဘာသာစကားကိုအတွက်မဆိုပြဿနာကဲ့သို့ပင်ပုံမှန်စကားရပ်အများအပြား varintov ရှိပါတယ်။ ဥပမာ, ဒီ:

အသုံးအနှုန်းတွေ၏အွန်လိုင်းစစ်ဆေးခြင်းကို

အရင်ကဆိုရင်ဘို့မှန်ကန်စွာ regex Check ဘာဖြစ်လို့လဲဆိုတော့ "ပုံမှန်" ပရိုဂရမ်းမင်းဘာသာစကားကနေမတူသော syntax ၏ရှုပ်ထွေးမှုခက်ခဲနိုင်ပါတယ်။ ဤပြဿနာကိုဖြေရှင်းဖို့, သင်အမှန်တကယ်စာသားထဲမှာဖန်တီး template ကို၏မှန်ကန်မှုကိုစစ်ဆေးရန်လွယ်ကူစေအများအပြားအွန်လိုင်းစမ်းသပ်သူများအသုံးအနှုန်းတွေရှိပါတယ်။ အဆိုပါပရိုဂရမ်မာဟူသောအသုံးအနှုနျးမြားနှငျ့စိစစ်အတည်ပြုဒေတာဝင်သောနှင့်ချက်ချင်းအပြောင်းအလဲနဲ့၏ရလဒ်ကိုကြည့်ပါ။ အများအားဖြင့်ပုံမှန်အသုံးအနှုန်းတွေ, ဥပမာများနှင့်အများဆုံးတိုးချဲ့ဘာသာစကားများအကောင်အထည်ဖော်မှုကွဲပြားခြားနားမှုအသေးစိတ်ထားတဲ့ပစ္စုပ္ပန်တစ်ဦးကိုကိုးကားအပိုင်းရှိ၏။

ဒါပေမဲ့အပြည့်အဝယုံကြည်မှုအွန်လိုင်းဝန်ဆောင်မှုများရလဒ်များကိုမှ PHP ကိုကိုအသုံးပြုဖို့သူအပေါင်းတို့သည် developer များအဘို့အကြံပြုမဟုတ်ပါဘူး။ တစ်ဦးကပုံမှန်စကားရပ်တိကျမ်းစာ၌လာသည်နှင့်အလူတစ်ဦးအတွက်မှန်ကန်ကြောင်းအတည်ပြု, အရည်အချင်းများပေါ်ပေါက်ခြင်းနှင့်အမှားအယွင်းများ၏မရှိခြင်းအာမခံချက်ဖြစ်ပါတယ်။

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 my.unansea.com. Theme powered by WordPress.