Advertisement
Guest User

Untitled

a guest
May 28th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1.  
  2. function formatPattern(value, pattern) {
  3. if (value){
  4. var characters = pattern.replace(getWildcardRegex(), ""); // removes all wild cards
  5. value = value.replace(new RegExp("["+characters+"]", 'gi'), ""); // removes all non wildcard characters in pattern
  6. if (value){
  7. return replace(value, pattern);
  8. }
  9. }
  10. }
  11.  
  12. function replace(remainingString, pattern) {
  13. var index = pattern.search(getWildcardRegex());
  14. pattern = pattern.split('');
  15. if (index > -1){
  16. for(var i = 0; i < wildcards.length; i ++){
  17. if (wildcards[i].wildcard == pattern[index]){ // find correct wildcard in array
  18. if (wildcards[i].isValid(remainingString.charAt(0))){
  19. pattern[index] = remainingString.charAt(0);
  20. } else {
  21. pattern[index] = ""; // removes character at index
  22. }
  23. remainingString = remainingString.substring(1, remainingString.length);
  24. }
  25. }
  26.  
  27. if (remainingString.length > 0){
  28. return replace(remainingString, pattern.join(''));
  29. } else {
  30. return pattern.join('').substring(0, index+1);
  31. }
  32. }
  33. return pattern.join('');
  34. }
  35.  
  36.  
  37.  
  38. var wildcards = [
  39. {
  40. wildcard: "9",
  41. isValid: function(value){
  42. if (!isNaN(parseInt(value))){
  43. return true;
  44. } else {
  45. return false;
  46. }
  47. }
  48. },
  49. {
  50. wildcard: "z",
  51. isValid: function(value){
  52. if (value.match(/[a-z]/i)){
  53. return true;
  54. } else {
  55. return false;
  56. }
  57. }
  58. },
  59. {
  60. wildcard: "*",
  61. isValid: function(value){
  62. return true; // * = everything
  63. }
  64. }
  65. ]
  66.  
  67. function getWildcardRegex(){
  68. var retValue = "";
  69. for(var i = 0; i < wildcards.length; i ++){
  70. retValue += wildcards[i].wildcard;
  71. }
  72. return new RegExp("[" + retValue + "]", 'gi');
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement