Advertisement
Slyphoria

Javascript! Address Standardizing is Difficult.

Feb 10th, 2015
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.56 KB | None | 0 0
  1. This is a bit of code for a JS project I did for class. It was a HTML document that took in values from an Excel spreadsheet, parsed it into a certain format, and made a new Excel document with the converted data. It was really difficult.
  2.  
  3. This function is a mess, but it worked because we only had a specific set of templates the address could take. This is the easiest way I could figure out how to do it in the time we had.
  4.  
  5. The function with a ton of others on a loop through each row of the input Excel sheet. Otherwise, it's self explanatory, I think.
  6.  
  7. //***********************************************************************************
  8. // Function: AddressFix(LoopCount)
  9. //
  10. // Author: Slyphoria
  11. //
  12. // Input: LoopCount from AddToRecordSet()
  13. //
  14. // Takes in Address from Excel, Turns the String into an Array, figures out what type of address it is,
  15. // changes the array accordingly, then prints out to a string to be returned to AddToRecordSet()
  16. //
  17. // Assumptions: These are the only street types and typos that will be entered.
  18. //
  19. // Returns: LineArray, edited.
  20. //
  21. //***********************************************************************************
  22.  
  23. function AddressFix(LoopCount,activeSheet) {
  24.  
  25. var Count = LoopCount;
  26. var TWO = 2;
  27. var AddressString = activeSheet.Cells(Count,TWO).Value;
  28.  
  29. AddressString = AddressString.trim();
  30. var AddressSplit = AddressString.split(" "); //Make it into an array based on separation by spaces
  31. var AptFix = "";
  32. var RoadFix = "";
  33. var StreetFix = "";
  34. var AddressResult = "";
  35. var AptTest3x4 = /\d{3}-\d{4}/; //###-####
  36. var AptTest3x3 = /\d{3}-\d{3}/; //###-###
  37. var AptTest4 = /\d{4}/; //####
  38. var AptTest3 = /\d{3}/; //###
  39.  
  40. if (AddressSplit[0] == "Ap"){
  41. AptFix = AddressSplit[1];
  42. AptFix = AptFix.slice(1, 4); //Leaves Apartment number
  43. RoadFix = AddressSplit[1];
  44. RoadFix = RoadFix.slice(4, RoadFix.length);
  45. StreetFix = AddressSplit[3];
  46. StreetFix = StreetFix.replace(/\W+/g,"");
  47.  
  48. if ((StreetFix == "Road") || (StreetFix == "Rd.") || (StreetFix == "Rd,")){
  49. StreetFix = "Rd";
  50. } else if ((StreetFix == "Street") || (StreetFix == "St.") || (StreetFix == "St,")){
  51. StreetFix = "St";
  52. } else if ((StreetFix == "Avenue") || (StreetFix == "Av") || (StreetFix == "Ave.") || (StreetFix == "Ave,") || (StreetFix == "Av.") || (StreetFix == "Av,")){
  53. StreetFix = "Ave";
  54. }
  55.  
  56. RoadFix = RoadFix + " " + AddressSplit[2] + " " + StreetFix;
  57. RoadFix = RoadFix.replace(/\W+\b/g," ");
  58. RoadFix = RoadFix.slice(1, RoadFix.length);
  59. AddressResult = RoadFix + ", Apt " + AptFix;
  60.  
  61. } else if (AddressSplit[0] == "P.O."){
  62.  
  63. RoadFix = AddressSplit[4];
  64. RoadFix = RoadFix.replace(/\W+\b/g,"");
  65. AddressSplit[4] = RoadFix;
  66.  
  67. StreetFix = AddressSplit[5];
  68. StreetFix = StreetFix.replace(/\W+\b/g,"");
  69.  
  70. if ((StreetFix == "Road") || (StreetFix == "Rd.") || (StreetFix == "Rd,")){
  71. StreetFix = "Rd";
  72. } else if ((StreetFix == "Street") || (StreetFix == "St.") || (StreetFix == "St,")){
  73. StreetFix = "St";
  74. } else if ((StreetFix == "Avenue") || (StreetFix == "Av") || (StreetFix == "Ave.") || (StreetFix == "Ave,") || (StreetFix == "Av.") || (StreetFix == "Av,")){
  75. StreetFix = "Ave";
  76. }
  77.  
  78. AddressSplit[5] = StreetFix;
  79. AddressResult = AddressSplit.join(" ");
  80.  
  81. } else if (AptTest3x4.test(AddressSplit[0]) ){
  82.  
  83. AptFix = AddressSplit[0];
  84. AptFix = AptFix.slice(0, 3);
  85. AptFix = "Apt" + " " + AptFix;
  86. RoadFix = AddressSplit[0];
  87. RoadFix = RoadFix.slice(3, RoadFix.length);
  88.  
  89. StreetFix = AddressSplit[2];
  90. StreetFix = StreetFix.replace(/\W+\b/g,"");
  91.  
  92. if ((StreetFix == "Road") || (StreetFix == "Rd.") || (StreetFix == "Rd,")){
  93. StreetFix = "Rd";
  94. } else if ((StreetFix == "Street") || (StreetFix == "St.") || (StreetFix == "St,")){
  95. StreetFix = "St";
  96. } else if ((StreetFix == "Avenue") || (StreetFix == "Av") || (StreetFix == "Ave.") || (StreetFix == "Ave,") || (StreetFix == "Av.") || (StreetFix == "Av,")){
  97. StreetFix = "Ave";
  98. }
  99.  
  100. RoadFix = RoadFix + " " + AddressSplit[1] + " " + StreetFix;
  101. RoadFix = RoadFix.replace(/\W+\b/g," ");
  102. RoadFix = RoadFix.slice(1, RoadFix.length);
  103. AddressResult = RoadFix + ", " + AptFix;
  104.  
  105. } else if (AptTest3x3.test(AddressSplit[0]) ){
  106.  
  107. AptFix = AddressSplit[0];
  108. AptFix = AptFix.slice(0, 3);
  109. AptFix = "Apt" + " " + AptFix;
  110. RoadFix = AddressSplit[0];
  111. RoadFix = RoadFix.slice(3, RoadFix.length);
  112.  
  113. StreetFix = AddressSplit[2];
  114. StreetFix = StreetFix.replace(/\W+\b/g,"");
  115.  
  116. if ((StreetFix == "Road") || (StreetFix == "Rd.") || (StreetFix == "Rd,")){
  117. StreetFix = "Rd";
  118. } else if ((StreetFix == "Street") || (StreetFix == "St.") || (StreetFix == "St,")){
  119. StreetFix = "St";
  120. } else if ((StreetFix == "Avenue") || (StreetFix == "Av") || (StreetFix == "Ave.") || (StreetFix == "Ave,") || (StreetFix == "Av.") || (StreetFix == "Av,")){
  121. StreetFix = "Ave";
  122. }
  123. RoadFix = RoadFix + " " + AddressSplit[1] + " " + StreetFix;
  124. RoadFix = RoadFix.replace(/\W+\b/g," ");
  125. RoadFix = RoadFix.slice(1, RoadFix.length);
  126. AddressResult = RoadFix + ", " + AptFix;
  127.  
  128. } else if (AptTest4.test(AddressSplit[0]) ){
  129.  
  130. RoadFix = AddressSplit[1];
  131. RoadFix = RoadFix.replace(/\W+\b/g,"");
  132.  
  133. StreetFix = AddressSplit[2];
  134. StreetFix = StreetFix.replace(/\W+\b/g,"");
  135.  
  136. if ((StreetFix == "Road") || (StreetFix == "Rd.") || (StreetFix == "Rd,")){
  137. StreetFix = "Rd";
  138. } else if ((StreetFix == "Street") || (StreetFix == "St.") || (StreetFix == "St,")){
  139. StreetFix = "St";
  140. } else if ((StreetFix == "Avenue") || (StreetFix == "Av") || (StreetFix == "Ave.") || (StreetFix == "Ave,") || (StreetFix == "Av.") || (StreetFix == "Av,")){
  141. StreetFix = "Ave";
  142. }
  143.  
  144. AddressResult = AddressSplit[0] + " " + RoadFix + " " + StreetFix;
  145.  
  146. } else if (AptTest3.test(AddressSplit[0]) ){
  147.  
  148. RoadFix = AddressSplit[1];
  149. RoadFix = RoadFix.replace(/\W+\b/g,"");
  150.  
  151. StreetFix = AddressSplit[2];
  152. StreetFix = StreetFix.replace(/\W+\b/g,"");
  153.  
  154. if ((StreetFix == "Road") || (StreetFix == "Rd.") || (StreetFix == "Rd,")){
  155. StreetFix = "Rd";
  156. } else if ((StreetFix == "Street") || (StreetFix == "St.") || (StreetFix == "St,")){
  157. StreetFix = "St";
  158. } else if ((StreetFix == "Avenue") || (StreetFix == "Av") || (StreetFix == "Ave.") || (StreetFix == "Ave,") || (StreetFix == "Av.") || (StreetFix == "Av,")){
  159. StreetFix = "Ave";
  160. }
  161.  
  162. AddressResult = AddressSplit[0] + " " + RoadFix + " " + StreetFix;
  163.  
  164. } else {
  165.  
  166. AddressResult = "FAIL";
  167. window.alert("The address fixing failed on line " + Count);
  168.  
  169. }
  170.  
  171. LineArray[3] = AddressResult;
  172.  
  173. return (LineArray);
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement