Alternativa funkcie explode (php) v javascripte

Programovacie jazyky, rady, poradňa...
vivaSlovakia
Guru wannabe
Guru wannabe
Príspevky: 2119
Registrovaný: 29 júl 2006, 10:30

Alternativa funkcie explode (php) v javascripte

Príspevok od používateľa vivaSlovakia »

Zdravim, potrebujem helpnut ...

Potrebujem zistit ci sa v premennej $email napr. "[email protected]" nachadza nezverejnit_... nejaka podmienka v javascripte

prax :

Ak sa nachadza "[email protected]" v premennej $email tak odstran to "nezverenit_" aby ostalo len "[email protected]" ...

v javascripte to potrebujem

// EDIT : Dalsi problem

podmienka na overenie retazca ze ci v nom je cislo (cislo aj s medzerami) 0949 555 555 (napr.)

Dik, odmenim k+ :P
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

na vyhladavanie v retazci pouzi fcie search() alebo indexOf()
to ti vrati index kde sa to nachadza

ten index co ti vrati mozes pouzit vo funkciach na orezanie stringu - substr() alebo substring()

na vyhladanie cisla v retazci pouzi regularny vyraz s funkciou search .. bohuzial s tym reg. vyrazom ti nepomozem ...
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

potrebujes alternativu fcie str_replace a nie explode.
ja pouzivam toto:

Kód: Vybrať všetko

function str_replace(inputString, fromString, toString) {
   var temp = inputString;
   if (fromString == "") {
      return inputString;
   }
   if (toString.indexOf(fromString) == -1) {
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } else {
      var midStrings = new Array("~", "`", "_", "^", "#");
      var midStringLen = 1;
      var midString = "";
      while (midString == "") {
         for (var i=0; i < midStrings.length; i++) {
            var tempMidString = "";
            for (var j=0; j < midStringLen; j++) { tempMidString += midStrings[i]; }
            if (fromString.indexOf(tempMidString) == -1) {
               midString = tempMidString;
               i = midStrings.length + 1;
            }
         }
      }
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + midString + toTheRight;
      }
      while (temp.indexOf(midString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(midString));
         var toTheRight = temp.substring(temp.indexOf(midString)+midString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   }
   return temp;
}
pouzitie:

Kód: Vybrať všetko

var mail='[email protected]';
mail=str_replace(mail,'nezverejnit_','');
alert(mail); // vypise: [email protected]
k tym cislam - fcia, kt. skontroluje, ci sa jedna o ciselny retazec:

Kód: Vybrať všetko

function isnumber(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}
vivaSlovakia
Guru wannabe
Guru wannabe
Príspevky: 2119
Registrovaný: 29 júl 2006, 10:30

Príspevok od používateľa vivaSlovakia »

Okej diky moc, explode som chcel len na podmienku... str_replace potom pouzijem na skratenie stringu, teoreticky stale potrebujem skratit len isty pocet... pomohli ste mi, K+ :)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Kód: Vybrať všetko

var cislo1 = "0123 456 789";
var cislo2 = "a123456";

alert("cislo1: " + (cislo1.match(/^[0-9 ]+$/) ? "OK" : "chyba") + "\n" +
      "cislo2: " + (cislo2.match(/^[0-9 ]+$/) ? "OK" : "chyba"));
Napísať odpoveď