<pedrocorreia.net ⁄>
corner
<mySearch ⁄> <mySearch ⁄>

corner
 
corner
<mySnippets order="rand" ⁄> <mySnippets order="rand" ⁄>

corner
 
corner
<myContacts ⁄> <myContacts ⁄>

<email ⁄>


pc@pedrocorreia.net

<windows live messenger ⁄>


pedrojacorreia@hotmail.com

<myCurriculum type="pdf" ⁄>


Download
corner
 
corner
<myBlog show="last" ⁄> <myBlog show="last" ⁄>

corner
 
corner
<myNews show="rand" ⁄> <myNews show="rand" ⁄>

corner
 
corner
<myNews type="cat" ⁄> <myNews type="cat" ⁄>

corner
 
corner
<myQuote order="random" ⁄> <myQuote order="random" ⁄>

corner
 
corner
<myPhoto order="random" ⁄> <myPhoto order="random" ⁄>

<pedrocorreia.net ⁄>
corner
 
corner
<myAdSense ⁄> <myAdSense ⁄>

corner
 
corner
<myVisitorsMap ⁄> <myVisitorsMap ⁄>

corner
 
 

<Operações sobre Strings ⁄ >




clicks: 11766 11766 2006-10-11 2006-10-11 goto mySnippets mySnippets javascript  Download  Bookmark This Bookmark This



Depois de num snippet anterior ter exemplificado como "converter" as funções left, right e mid do mundo VB* para o PHP, cá vai outro snippet dedicado ao pessoal do VB*.
Vou agora dar possiveis exemplos de como efectuar o mesmo, porém agora será para o Javascript. As funções serão um pouco mais extensas, pois serão feitas validações que no snippet respectivo do PHP não tinha feito.

Em relação ao snippet em PHP acrescentei duas funções. A 2ª parte deste snippet serão feitas mais duas operações (isNumber, isAlphanumeric) sobre uma String, mas isso ficará para mais adiante.

Foram abordadas 2 situações em relação aos parâmetros, nos exemplos do left, right e mid a String que irá ser trabalhada é já recebida como parâmetro, ao passo que no isNumber e isAlphanumeric a nossa String será o conteúdo de um campo num Formulário, poderão adaptar as funções à vossa conveniência, mas serve este snippet para terem uma noção de duas possiveis maneiras.

Então cá vai ...

  1. /**
  2. * Obter os n 1os caracteres de uma string
  3. *
  4. * @param String
  5. * @param int - quantos caracteres?
  6. * @return String
  7. */
  8. function left(str, n){
  9. if (n <= 0)
  10. return "";
  11. else if (n > String(str).length)
  12. return str;
  13. else
  14. return String(str).substring(0,n);
  15. }
  16.  
  17. /**
  18. * Obter os n últimos caracteres de uma string
  19. *
  20. * @param String
  21. * @param int - quantos caracteres?
  22. * @return String
  23. */
  24. function right(str, n){
  25. if (n <= 0)
  26. return "";
  27. else if (n > String(str).length)
  28. return str;
  29. else {
  30. var iLen = String(str).length;
  31. return String(str).substring(iLen, iLen - n);
  32. }
  33. }
  34.  
  35. /**
  36. * Obter uma parte intermediária da String
  37. *
  38. * @param String
  39. * @param int - começa em que posição? nota: a posição inicial é o 0
  40. * @param int - acaba em que posição?
  41. * @return String
  42. */
  43. function mid(str, startAt, until){
  44. if (startAt < 0 || until < 0) return "";
  45. var iEnd, iLen = String(str).length;
  46. if (startAt + until > iLen)
  47. iEnd = iLen;
  48. else
  49. iEnd = startAt + until;
  50.  
  51. return String(str).substring(startAt,iEnd);
  52. }
  53.  
  54.  



Se analisarem o código do isNumber e do isAlphanumeric facilmente poderão constatar que são em tudo semelhantes! Senão analisem linha a linha e vejam que a que difere é a que começa por: var checkOK, logo poderemos adaptar esta função a qualquer tipo de validação que queremos restringir numa String, basta para tal atribuir os caracteres permitidos ao checkOK.

As funções em baixo exemplificam como poderá ser feita uma função que verifica se é um número ou se por sua vez a string é composta somente por letras e números; se quiserem fazer uma função isAlpha será muito fácil adaptar ...

nota: como poderão reparar no isNumber não é feita uma validação se o número é válido, por exemplo nada vos impede de colocar "-3.2-3" a função irá retornar isto como verdadeiro, logo esta função não será um isNumber verdadeiro, num futuro snippet irei falar sobre outro tipo de validação de tipos de dados.

  1. /**
  2. * Verificar se uma string é composta por número e letras
  3. *
  4. * @param form - nome do formulário
  5. * @param field - nome do campo
  6. * @return String
  7. */
  8. function isAlphanumeric(form, field){
  9. checkStr=form.elements[field].value;
  10. var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; //caracteres válidos para a função
  11. var allValid = true;
  12. for (i = 0; i < checkStr.length; i++){
  13. ch = checkStr.charAt(i);
  14. for (j = 0; j < checkOK.length; j++)
  15. if (ch == checkOK.charAt(j))
  16. break;
  17. if (j == checkOK.length){
  18. allValid = false;
  19. break;
  20. }
  21. }
  22. return allValid;
  23. }
  24.  
  25. /**
  26. * Verificar se uma string é composta por número
  27. *
  28. * @param form - nome do formulário
  29. * @param field - nome do campo
  30. * @return String
  31. */
  32. function isNumber(form, field){
  33. checkStr=form.elements[field].value;
  34. var checkOK = "0123456789.-"; //caracteres válidos para a função
  35. var allValid = true;
  36. for (i = 0; i < checkStr.length; i++){
  37. ch = checkStr.charAt(i);
  38. for (j = 0; j < checkOK.length; j++)
  39. if (ch == checkOK.charAt(j))
  40. break;
  41. if (j == checkOK.length){
  42. allValid = false;
  43. break;
  44. }
  45. }
  46. return allValid;
  47. }



Qualquer erro/ dúvida é só dizer!









clicks: 11766 11766 2006-10-11 2006-10-11 goto mySnippets mySnippets javascript  Download  Bookmark This Bookmark This