מבוא
בין אם אתה מבין זאת או לא, הנתונים הפכו לחלק מכריע בחיי היום-יום שלנו. מהזמנת מזון באינטרנט ועד לחיפוש מזון לחתולים, אנחנו כל הזמן שולחים ומקבלים נתונים. כמפתחים של אפליקציות אינטרנט, באחריותנו לוודא שהקלטות המשתמשים הן בפורמט שצוין כך שמסד הנתונים יבין את הנתונים כהלכה, והאפליקציה תישאר חזקה.
אימות מספרי טלפון חשוב מכיוון שהוא מבטיח שהנתונים נשמרים בפורמט עקבי בכל מסד הנתונים. לדוגמה, משתמשים עשויים להזדקק להבהרה האם עליהם להזין את קוד המדינה לפני מספר הטלפון שלהם. עם אימות מתאים, המשתמשים יכולים לקבוע בקלות אם הוא נדרש. באופן דומה, חווית המשתמש משתפרת עם פורמט עקבי, מכיוון שאתה יודע למה לצפות מהמשתמשים ויכול ליישם היגיון בהתאם. זו תהיה חוויה גרועה למשתמשים אם הקוד יישבר בשלב מאוחר יותר עקב נתונים לא עקביים.
ביטויים רגולריים הם כלים רבי עוצמה להתאמת דפוסים. הם מספקים את הגמישות להתאים דפוסים מסוגים שונים, בהתאם למקרה השימוש שלך. בנוסף, ביטויים רגולריים הם אגנוסטיים לשפה, מה שהופך את היגיון האימות שלך לנייד יותר, מכיוון שאתה יכול לשלב בקלות את אימות הליבה. עבודה עם regex ב-JavaScript היא משימה פשוטה.
מאמר זה יעזור לך להבין כיצד להשתמש בכוחם של ביטויים רגולריים כדי לאמת מספרי טלפון עבור היישום שלך. תכתוב פונקציית JavaScript פשוטה כדי לאמת מספרי טלפון עם קודי מדינה.
מהו ביטוי רגולרי?
במילים פשוטות, ביטוי רגולרי מתאים לתבנית מוגדרת מראש במחרוזת נתונה. הוא נמצא בשימוש נרחב בשפות תכנות ומשמש בעיקר לאימות קלט של פורמט מסוים. יתר על כן, ביטויים רגולריים משמשים בדרך כלל לחיפוש, פיצול והחלפה של דפוסים שצוינו.
נניח שאתה רוצה למצוא כתובת אימייל במסמך. כתובת הדוא"ל יכולה להיות כל כתובת, לא כתובת ספציפית. כתיבת ביטוי פשוט תעזור לך למצוא את התבנית במהירות מכיוון שאתה כבר יודע את המבנה של כתובת אימייל.
ביטוי רגולרי משתמש בתווים מיוחדים כדי לציין סוגים שונים של תבניות. לדוגמה:
.
(נקודה) היא תו מיוחד שיכול להתאים לכל תו.*
(כוכבית) תואם את התו הקודם 0 פעמים או יותר.+
(פלוס) תואם את התו הקודם פעם אחת או יותר.?
(סימן שאלה) הופך את התו הקודם לאופציונלי.[abc]
מתאים לכל אחת מהדמויותa
,b
, אוc
.(abc)
מקבץ דמויות יחד.^
(קארט) תואם את תחילת הקו.$
(דולר) תואם לסוף השורה.
אלה רק כמה. אם אתה רוצה לצלול לעומק וללמוד על דפוסים נוספים, אתה יכול להתייחס מסמך זה מבית מיקרוסופט.
בואו נבנה ביטוי רגולרי שבודק אם קבוצת מספרים נתונה היא מיקוד בן חמש ספרות. כדי להתחיל לכתוב את הביטוי, נשתמש ב- ^
סימן (קארט), שכן הוא תואם את תחילת הקו. בביטוי רגיל, d
מתאים לכל ספרה, ומספר בתוך סוגרים מסולסלים ({}
) תואם את האלמנט הקודם בדיוק למספר הפעמים שניתן בתוך הסוגרים. מהרשימה למעלה, אנחנו יודעים את זה $
משמש להתאמת סוף השורה.
שילוב המידע הזה, נקבל ביטוי רגולרי כמו זה:
/^d{5}$/
כעת, בואו נבחן את הגרפיקה למטה כדי להבין טוב יותר את הביטוי.
ביטוי רגיל כדי להתאים למיקוד בן חמש ספרות
כעת, לאחר שיש לנו הבנה בסיסית של ביטויים רגולריים והבנייה הכללית שלהם, זה זמן טוב לחקור כיצד ניתן ליישם את הביטויים הללו בפונקציית JavaScript.
ביטויים רגולריים של JavaScript
JavaScript הוא ה שפת התכנות הפופולרית ביותר בקרב מפתחים. מכיוון שכמעט כל יישומי האינטרנט דורשים JavaScript, חיוני להבין כיצד ניתן להשתמש בביטויים רגולריים בשפה זו.
ב- JavaScript, ה- RegExp
האובייקט משמש להתאמת דפוסים. ניתן להשתמש באובייקט זה בשתי דרכים:
- שימוש בסימונים מילוליים, שבו תבנית מעוצבת בין שני לוכסנים קדימה
- שימוש בסימון בנאי, כאשר מחרוזת או a
RegExp
חפץ עובר
ניתן להשתמש בסימון מילולי בצורה פשוטה כמו זו:
const expr = /^d{5}$/i;
מצד שני, עם סימון הבנאי, תצטרך להשתמש ב- RegExp
בנאי כדי ליצור מופע שלו. כך זה נראה:
const expr = new RegExp(/^d{5}$/, "i");
אתה יכול לקרוא עוד על אובייקט RegExp מה- מסמכי MDN רשמיים. כעת, בואו נחקור את החשיבות של אימות מספר טלפון ואת המרכיבים השונים של מספר טלפון.
אימות מספר טלפון ורכיבים
אימות מספרי טלפון בצד הלקוח הוא חיוני בעת שמירת מספרי טלפון במסד הנתונים שלך. ללא אימות מתאים, הקוד שלך עשוי להפגין התנהגויות בלתי צפויות.
עיין במדריך המעשי והמעשי שלנו ללימוד Git, עם שיטות עבודה מומלצות, סטנדרטים מקובלים בתעשייה ודף רמאות כלול. תפסיק לגוגל פקודות Git ולמעשה ללמוד זה!
לדוגמה, נניח שאתה משתמש בשירות הדורש את קידומת המדינה יחד עם מספר הטלפון, אך המשתמשים שלך לא כוללים אותם בגלל חוסר אימות. עכשיו, יש לך רק את המספר לְלֹא קוד המדינה, ושירות ששולח הודעות טקסט עלול להיכשל בגלל זה. זהו רק תרחיש היפותטי אחד. בעיות אחרות עלולות אפילו לקרוס את האפליקציה שלך. זה חיוני לטפל נכון בנתונים שלך ב-frontend, להבטיח שאתה שומר נתונים נקיים ועקביים בכל מסד הנתונים שלך.
בדרך כלל, מספר טלפון מורכב מארבעה חלקים:
- קידומת מדינה: 1 עד 3 הספרות הראשונות (בהתאם למדינה) מגדירות את המדינה של מספר הטלפון. קוד זה מאפשר ניתוב השיחה לארץ הנכונה. קוד מדינה לא יכול להתחיל ב-0.
המאמר שאתה עורך כרגע הוא "אמת מספרי טלפון ב-JavaScript עם ביטויים רגילים". גוש הטקסט לעריכה:
- אזור חיוג: ידוע גם בתור העיר או קידומת החיוג, חלק זה של המספר עוזר לנתב את השיחה לאזור הגיאוגרפי הנכון בתוך המדינה. במדינות מסוימות, כמו ארצות הברית, אזורי חיוג יכולים גם לציין קבוצה מסוימת של מספרי טלפון עבור שירות מסוים. בנוסף, בצפון אמריקה, קידומת חיוג אינה יכולה להתחיל ב-0 או ב-1.
- קידומת טלפון: רצף המספרים הזה מוקצה למשרד מרכזי או מרכזית טלפון ספציפית על ידי חברת הטלפון, ומצמצם עוד יותר את האזור הגיאוגרפי או השכונה הספציפיים.
- מספר קו: זהו המספר הייחודי המוקצה לקו הטלפון הספציפי עבור משק בית או עסק בתוך אזור הקידומת. חלק זה של המספר בדרך כלל מבטיח שכל מספר טלפון בתוך מדינה, אזור וקידומת הוא ייחודי.
ללא קידומת המדינה, שילוב של החלקים הנותרים מביא למספר טלפון בן עשר ספרות כאשר קידומת החיוג וקידומת הטלפון הם שלוש ספרות כל אחת, ומספר הקו הוא ארבע ספרות.
כעת נעבור לכתיבת פונקציית JavaScript שמאמתת מספר טלפון על סמך קריטריונים אלו באמצעות ביטויים רגולריים.
צור RegEx עבור אימות מספר טלפון
כבר הבנו את המבנה הבסיסי של מספר טלפון. למדנו גם על ביטויים רגולריים וכיצד ניתן להשתמש בהם ב-JavaScript. בחלק זה, נכתוב פונקציית JavaScript פשוטה המאמתת מספרי טלפון בפורמט הנתון:
COUNTRY_CODE-AREA_CODE-TELEPHONE_PREFIX-LINE_NUMBER
לדוגמה, מספר טלפון חוקי עבור הפונקציה שלנו יהיה כך +123-456-789-1234
, אבל לא +012-123-456-7890
or +12-123-456-789
, מכיוון שמספרי טלפון אלו אינם עומדים בכללי מספרי טלפון שדיברנו עליהם קודם לכן.
עכשיו, בואו נקפוץ לכתיבת הביטוי הרגולרי. ראשית, בואו נבדוק אם קידומת המדינה היא באורך של 1 עד 3 ספרות ואינו מתחיל באפס.
כדי לציין את תחילת הביטוי הרגולרי, השתמש בסימן (^
), ולאחר מכן אמת שקיים פלוס בהתחלה. למטרה זו, בואו נשתמש +
, שתתאים לכך שהפלוס קיים בהתחלה. כעת, כדי להבטיח שהספרות של קידומת המדינה הן בין ספרה אחת לשלוש והספרה הראשונה אינה אפס, נוכל לכתוב משהו כזה: [1-9]{1}[0-9]{0,2}
. כאן, [1-9]{1}
מציין שכל ספרה מ-1 עד 9 יכולה להתקיים בדיוק פעם אחת, ובאופן דומה, [0-9]{0,2}
מציין שכל ספרה מ-0 עד 9 יכולה להתקיים אפס עד פעמיים.
עבור המפריד, אנו יכולים להוסיף א -
(מקף) בין חלקי המספר. אחד -
ניתן להוסיף לאחר אימות קוד המדינה. אז, בשלב זה, הביטוי הרגולרי נראה כך:
^+[1-9]{1}[0-9]{0,2}-$
השמיים $
בסוף מציין את סוף השורה. עכשיו, עבור אזור החיוג, זה יהיה די דומה. אזור חיוג לא יכול להתחיל באפס או באחד. אז, החלק הראשון יהיה [2-9]{1}
. זה תואם לכך שהמספר הראשון הוא בין 2 ל-9. התאמה זו מתרחשת פעם אחת. לאחר מכן, עבור שאר הקוד, נוכל לכתוב [0-9]{2}
. זה יבטיח שיש בדיוק שתי ספרות אחרי הראשונה, ולכל ספרה, הטווח הוא בין 0 ל-9. שוב, הוסף את מפריד המקף בסוף.
כעת, הביטוי הרגולרי המלא ייראה כך:
^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-$
|----Country Code---|-|---Area Code--|-|
בואו נשתמש שוב באותו דפוס לבדיקת קידומת הטלפון. נניח שגם קידומת הטלפון לא יכולה להתחיל באפס או באחד. אז, מוסיף [2-9]{1}[0-9]{2}
ומקף שוב יעשה את הביטוי כך:
^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-$
|----Country Code---|-|---Area Code--|-|--Tel Prefix--|-|
החלק היחיד שנותר כעת הוא מספר השורה, שיכול להיות כל ספרה באורך של ארבע בדיוק. זה יותר פשוט מהאחרים. הביטוי הוא [0-9]{4}
.
הביטוי המלא הוא כדלקמן:
^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-[0-9]{4}$
|----Country Code---|-|---Area Code--|-|--Tel Prefix--|-|-Line-|
בטח שמתם לב לשימוש התכוף בפלטה מתולתלת. הם משמשים כדי להתאים את המקרים המסופקים בתוך הפלטה. אם זו ספרה ספציפית, כמו {1}
, זה יתאים לדפוס הקודם פעם אחת בדיוק. עם זאת, אם זה טווח, כמו {0, 2}
, הוא מגדיר את המספר המינימלי והמקסימלי של התאמות. אז, במקרה של {0, 2}
, הוא יתאים לתבנית לפחות אפס פעמים ומקסימום פעמיים.
התבנית מוכנה. כעת נוכל לכתוב פונקציית JavaScript פשוטה כדי לבדוק אם מספר טלפון חוקי באמצעות הביטוי הרגולרי. הנה הפונקציה:
function validatePhoneNumber(phoneNumber) { const pattern = new RegExp("^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-[0-9]{4}$"); if (pattern.test(phoneNumber)) { console.log("Phone number is valid"); return true; } else { console.log("Phone number is not valid"); return false; }
} validatePhoneNumber("+123-456-789-1234"); validatePhoneNumber("+0-123-456-7890"); validatePhoneNumber("+12-012-123-1234");
הפונקציה די פשוטה. זה לוקח מספר טלפון כקלט. דפוס הביטוי הרגולרי מאוחסן בתוך משתנה שנקרא pattern
. התבנית מופעלת באמצעות הבנאי RegExp והעברת הביטוי כפרמטר לבנאי. לאחר מכן, אנו בודקים את מספר הטלפון באמצעות ה test
שיטה זמינה באובייקט. באמצעות הצהרת if-else, אנו בודקים אם מספר הטלפון עובר את המבחן. אם כן, אנו מחזירים true ושולחים הודעת מסוף המציינת כי Phone number is valid
. אחרת, הוא מחזיר false ומציג הודעת מסוף המציינת שמספר הטלפון אינו חוקי.
עם זה, אנחנו מוכנים ללכת. כעת, אתה יכול לבדוק את מספרי הטלפון שלך כדי לראות אם הם תקפים.
<br> סיכום
מאמר זה נועד לספק סקירה קצרה של ביטויים רגולריים, השימוש בהם וכיצד ניתן ליישם אותם כדי לאמת מספרי טלפון. דנו גם ברכיבים השונים של מספר טלפון וכיצד ניתן לבדוק כל רכיב.
עם הבנה בסיסית של ביטויים רגולריים, כעת תוכל לחקור דפוסים נוספים. אתה יכול גם להשתמש בכלים כמו regex101 לאימות הביטויים שלך באינטרנט.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- EVM Finance. ממשק מאוחד למימון מבוזר. גישה כאן.
- Quantum Media Group. IR/PR מוגבר. גישה כאן.
- PlatoAiStream. Web3 Data Intelligence. הידע מוגבר. גישה כאן.
- מקור: https://stackabuse.com/validate-phone-numbers-in-javascript-with-regular-expressions/
- :יש ל
- :הוא
- :לֹא
- :איפה
- 1
- 12
- 20
- 8
- 9
- a
- א ב ג
- אודות
- מֵעַל
- לפיכך
- לרוחב
- למעשה
- להוסיף
- הוסיף
- מוסיף
- נוסף
- בנוסף
- כתובת
- לאחר
- שוב
- מכוון
- תעשיות
- מאפשר
- לאורך
- כְּבָר
- גם
- אמריקה
- בין
- an
- ו
- כל
- בקשה
- יישומים
- יישומית
- ARE
- AREA
- מאמר
- AS
- שהוקצה
- At
- זמין
- מבוסס
- בסיסי
- BE
- כי
- להיות
- לפני
- להתחיל
- להלן
- מוטב
- בֵּין
- גבול
- הפסקות
- לִבנוֹת
- עסקים
- אבל
- by
- שיחה
- נקרא
- CAN
- לא יכול
- מקרה
- חָתוּל
- מֶרכָּזִי
- אופי
- תווים
- לבדוק
- בדיקה
- בדיקות
- עִיר
- לקוחות
- קוד
- קודים
- שילוב
- בדרך כלל
- חברה
- להשלים
- רְכִיב
- רכיבים
- עִקבִי
- מורכב
- קונסול
- תמיד
- בניה
- ליבה
- לתקן
- יכול
- מדינות
- מדינה
- להתרסק
- לִיצוֹר
- הקריטריונים
- מכריע
- כיום
- נתונים
- מסד נתונים
- מיום ליום
- עמוק יותר
- מגדיר
- תלוי
- לקבוע
- מפתחים
- אחר
- ספרות
- נָדוֹן
- מציג
- do
- מסמך
- עושה
- לא איכפת
- דוֹלָר
- נקודה
- מטה
- ראוי
- כל אחד
- מוקדם יותר
- בקלות
- או
- אלמנט
- אמייל
- מוּעֳסָק
- סוף
- לְהַבטִיחַ
- מבטיח
- הבטחתי
- אֲפִילוּ
- בדיוק
- לִבחוֹן
- דוגמה
- חליפין
- תערוכה
- להתקיים
- קיים
- לצפות
- ניסיון
- לחקור
- ביטוי
- ביטויים
- FAIL
- שקר
- מעטים
- ראשון
- גמישות
- להתמקד
- לעקוב
- כדלקמן
- מזון
- בעד
- פוּרמָט
- קדימה
- ארבע
- תכוף
- החל מ-
- ממשק
- פונקציה
- נוסף
- יתר על כן
- כללי
- גיאוגרפי
- לקבל
- Git
- נתן
- Go
- טוב
- גרפי
- קבוצה
- מדריך
- יד
- לטפל
- ידות על
- יש
- לעזור
- עוזר
- כאן
- בית
- לרחף
- איך
- איך
- אולם
- HTTPS
- i
- if
- ליישם
- יושם
- חשיבות
- חשוב
- in
- כלול
- כולל
- להצביע
- מצביע על
- מידע
- קלט
- תשומות
- למשל
- לשלב
- אל תוך
- מבוא
- בעיות
- IT
- JavaScript
- לקפוץ
- רק
- רק אחד
- לדעת
- ידוע
- חוסר
- שפה
- שפות
- מאוחר יותר
- לִלמוֹד
- למד
- למידה
- אורך
- לתת
- LG
- כמו
- קו
- רשימה
- חי
- ll
- הגיון
- ארוך
- נראה
- נראה כמו
- נראה
- לעשות
- עושה
- עשייה
- סימן
- להתאים
- תואם
- מקסימום
- mdn
- הודעה
- הודעות
- שיטה
- מיקרוסופט
- יכול
- מינימום
- יותר
- המהלך
- מוזילה
- צריך
- צורך
- צפון
- צפון אמריקה
- עַכשָׁיו
- מספר
- מספרים
- אובייקט
- of
- Office
- on
- פעם
- ONE
- יחידות
- באינטרנט
- רק
- or
- אחר
- אַחֶרֶת
- שלנו
- הַחוּצָה
- סקירה
- פרמטר
- חלק
- מסוים
- חלקים
- מעברי
- חולף
- תבנית
- דפוסי
- טלפון
- מקום
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- ועוד
- נקודה
- עני
- פופולרי
- כּוֹחַ
- חזק
- מעשי
- בראש ובראשונה
- תכנות
- שפות תכנות
- תָקִין
- כמו שצריך
- לספק
- ובלבד
- מטרה
- שאלה
- מהירות
- רכס
- RE
- חומר עיוני
- מוכן
- להבין
- קבלה
- regex
- רגיל
- נותר
- שְׂרִידִים
- לדרוש
- נדרש
- דורש
- אחריות
- REST
- תוצאות
- לַחֲזוֹר
- החזרות
- טַבַּעַת
- חָסוֹן
- מסלול
- כללי
- s
- אותו
- שמור
- חסכת
- לומר
- תרחיש
- חיפוש
- סעיף
- סעיפים
- לִרְאוֹת
- לשלוח
- שליחה
- שולח
- רצף
- שרות
- סט
- Shadow
- גיליון
- צריך
- צד
- סִימָן
- דומה
- באופן דומה
- פָּשׁוּט
- בפשטות
- since
- SMS
- So
- כמה
- משהו
- מיוחד
- ספציפי
- מפורט
- התמחות
- תקנים
- התחלה
- הצהרה
- הברית
- עצור
- מאוחסן
- פשוט
- מחרוזת
- מִבְנֶה
- סיכום
- לוקח
- המשימות
- מונחים
- מבחן
- נבדק
- מֵאֲשֶׁר
- זֶה
- השמיים
- האזור
- השורה
- שֶׁלָהֶם
- אותם
- אז
- שם.
- אלה
- הֵם
- זֶה
- שְׁלוֹשָׁה
- בכל
- זמן
- פִּי
- שכותרתו
- ל
- יַחַד
- כלים
- מַעֲבָר
- נָכוֹן
- שתיים
- סוגים
- להבין
- הבנה
- מבין
- הבין
- לא צפוי
- ייחודי
- מאוחד
- ארצות הברית
- להשתמש
- במקרה להשתמש
- מְשׁוּמָשׁ
- משתמש
- חוויית משתמש
- משתמשים
- שימושים
- באמצעות
- בְּדֶרֶך כְּלַל
- מנוצל
- לְאַמֵת
- אימות
- שונים
- רוצה
- דרכים
- we
- אינטרנט
- יישומי אינטרנט
- מה
- מתי
- אם
- אשר
- באופן נרחב
- יצטרך
- עם
- בתוך
- לְלֹא
- עובד
- היה
- לכתוב
- כתיבה
- אתה
- זפירנט
- אפס
- רוכסן