עריכת מחרוזת עם מספרי פלאפון
-
@אבי-203 אמר בעריכת מחרוזת עם מספרי פלאפון:
במחשבה שנייה אני שם לב שאז לא אוכל להריץ את יתר החישובים להסיר כשרים ומספרים ביתיים. אני בכל מקרה חייב למצא דרך לעבור מספר מספר ממחרוזת לפי הפסיק. ורק אח"כ לבנות את המחרוזת מחדש.
יש דרך כזו לעבור על מחרוזת ועבור מספר מספר לפי הפסיקים כמו map?var userInput = '' //יכול להיות מופרד בפסיק או בקפיצת שורה. userInput.split(/[\n,\t]/) .map(x => x.replace('\D', '').replace(/^([^0])/, '0$1')) //הסרת תווים זרים והוספת אפס .map( ... ); //בדיקה אם כשר...
-
@אבי-203 אמר בעריכת מחרוזת עם מספרי פלאפון:
איפה אני יכול ללמוד על כל תורת הביטויים האלו??
@chv אמר בעריכת מחרוזת עם מספרי פלאפון:
ל @dovid יש כאן מדריך מושקע
https://tchumim.com/post/10185כיהודה ועוד לקרא אני אישית נהנתי מ https://regexone.com/ יש שם תרגול חי צעד אחר צעד.
-
שיפור:
var koshers = [ "05041", //פלאפון "05276","05271", //סלקום "05484","05485", //פרטנר "05731", "05741", //מירס "05331", //הוט "05831","05832","05337","05338", //גולן "05567" //רמי לוי ]; var userInput = ''; //יכול להיות מופרד בפסיק | קפיצת שורה | טאב var result = userInput.split(/[\n,\t]/) .map(x => x.replace('\D', '').replace(/^([^0])/, '0$1')) //הסרת תווים זרים והוספת אפס .map(function(tel){ if(!/0[57]\d{8}|0[23489]\d{7}/.test(tel)) return {valid: false, number: tel}; var portable = tel.startsWith('05'); var kosher = portable && koshers.includes(tel.substring(0,4)); return { number: tel, valid: true, isPortable: portable, isKosher: kosher, smsCapable: portable && !kosher }; });
-
@אבי-203 כתבתי קוד קצת גנרי (בהתאם למה שהבנתי שאתה צריך).
תוכל לסנן בfilter לפי האובייקט כדי להסיר מספרים לא תקינים או לקבל רק כשרים או להיפך וכולי ולבסוף בmap לקבל רק את הnumber מתוך האובייקט. למשל תשנה את שורה 18, ככה}).filter( x => x.isPortable).map(x => x.number);
-
@dovid אמר בעריכת מחרוזת עם מספרי פלאפון:
startsWith('05')
זה מה שיצא לי בסוף, וזה עובד! מקווה שלא קשקשתי שטויות...
בכל אופן כיון שזה עובד אז תודה גדולה!!אגב. בחברת הסמס שאני משתמש בה אין את הפונקצייה הזו לסינון כשרים ותקולים, מסיבה מאוד פשוטה כי אתה מחוייב גם על הכשרים שנשלחו...
var smsing = [ "05041","05276","05271","05484","05485","05731", "05741", "05331", "05831","05832","05337","05338","05567" ]; let rObj = []; let userInput = $w('#textBox1').value; userInput.split(/[\n,\t]/).map(obj => { var smsto =obj.replace(/\D/gi, '').replace(/^([^0])/, '0$1') if (smsing.includes(smsto.substr(0, 5))===false && smsto.substr(1, 1) === "5") { if(!/0[57]\d{8}|0[23489]\d{7}/.test(smsto)) {}else{ rObj += smsto + "," return rObj } } }) $w('#text358').text = "!הסתיים בהצלחה" $w('#textBox1').value = rObj
-
@OdedDvir אמר בעריכת מחרוזת עם מספרי פלאפון:
@אבי-203 אמר בעריכת מחרוזת עם מספרי פלאפון:
איפה אני יכול ללמוד על כל תורת הביטויים האלו??
@chv אמר בעריכת מחרוזת עם מספרי פלאפון:
ל @dovid יש כאן מדריך מושקע
https://tchumim.com/post/10185כיהודה ועוד לקרא אני אישית נהנתי מ https://regexone.com/ יש שם תרגול חי צעד אחר צעד.
אני אישית אוהב לעבוד עם https://regex101.com/ שמסביר לך בדיוק מה עושה כל דבר שכתבת