Nazkyn Posted March 9, 2007 Share Posted March 9, 2007 I'm currently working on and debugging a script and I keep coming across this error - Here's my JavaScript - <!--Beginfunction answer() {var emptyPocketsOne = eval(document.calc.regex.value)parseemptyPocketsOne = emptyPocketsOne.match(/Empty Pockets: (\d+)/)var usedPocketsOne = eval(document.calc.regex.value)parsusedPocketsOne = usedPocketsOne.match(/Used Pockets: (\d+)/)var labSpaceOne = eval(document.calc.regex.value)parselabSpaceOne = labSpaceOne.match(/Drug Lab Size: (\d+)/)var junkiesOne = eval(document.calc.regex.value)parsejunkiesOne = junkiesOne.match(/Working Junkies: (\d+)/)var JunkiesTwo = eval(document.calc.regex.value)parseJunkiesTwo = JunkiesTwo.match(/Training Junkies: (\d+)/)var emptyPocketsTwo = eval(document.calc.regex.value)parseemptyPocketsTwo = emptyPocketsTwo.match(/Empty Pockets: (\d+)/)var usedPocketsTwo = eval(document.calc.regex.value)parsusedPocketsTwo = usedPocketsTwo.match(/Used Pockets: (\d+)/)var labSpaceTwo = eval(document.calc.regex.value)parseelabSpaceTwo = labSpaceTwo.match(/Drug Lab Size: (\d+)/)var junkiesTwo = eval(document.calc.regex.value)parsejunkiesTwo = junkiesTwo.match(/Working Junkies: (\d+)/)var JunkiesTwo = eval(document.calc.regex.value)parseJunkiesTwo = JunkiesTwo.match(/Training Junkies: (\d+)/)var totalJunkies = (junkiesOne[1] + junkiesTwo[1])var resultOne = 0while (usedPocketsOne[1] > totalJunkies - labSpaceOne[1] * 17) { resultOne = resultOne + 1 usedPocketsOne[1] = usedPocketsOne[1] - totalJunkies + labSpaceOne[1] * 17 totalJunkies = totalJunkies + 1}var resultTwo = 0while (usedPocketsTwo[1] > totalJunkies - labSpaceTwo[1] * 17) { resultTwo = resultTwo + 1 usedPocketsTwo[1] = usedPocketsTwo[1] - totalJunkies + labSpaceTwo[1] * 17}var visitsOne = eval(document.calc.regex.value)parsevisitsOne = visitsOne.match(/Dealer Visits Remaining: (\d)/)if (visitsOne[1] == 0) { resultOne = resultOne - 2 usedPocketsOne[1] = usedPocketsOne[1] + 1}var visitsTwo = eval(document.calc.regex.value)parsevisitsTwo = visitsTwo.match(/Dealer Visits Remaining: (\d)/)if (visitsTwo[1] == 0) { resultTwo = resultTwo - 2 usedPocketsTwo[1] = usedPocketsTwo[1] + 1}document.getElementById('result').innerHTML ="<b>You can spend " + resultOne + " ( " + resultTwo + " ) " + " tokens" + "," + " You need to purchase " + (emptyPocketsOne[1] - usedPocketsOne[1]) + " ( " + (emptyPocketsTwo[1] - usedPocketsTwo[1]) + " ) " + " drugs" + ".</b>" }// End--> This is the data that i'm inputting into my HTML form - Empire Value: $3,781,581 Rank: 81Money: $2,556,932 Tokens: 90Working Junkies: 500 Training Junkies: 0Sewing Machines: 0 Gun Presses: 0Coat: Pakistani Made Travel Turban Guns: 95Empty Pockets: 6,025 Vests: 72,140Stamina: 200% Thugs: 0Used Pockets: 41,975 Drug Lab Size: 0 Sq. Ft.Current Station: Rit's House Drug Lab Set: Crystal MethDealer Visits Remaining: 0 Text Books: 235 Anyone know what could be causing the error?? Link to comment Share on other sites More sharing options...
Chocolate570 Posted March 9, 2007 Share Posted March 9, 2007 Hmmm...try escaping the data before parsing it with your script. See if the error disappears. Link to comment Share on other sites More sharing options...
Nazkyn Posted March 9, 2007 Author Share Posted March 9, 2007 Sorry, i'm really new to this... escape the data before parsing?? Link to comment Share on other sites More sharing options...
Chocolate570 Posted March 9, 2007 Share Posted March 9, 2007 Sorry, i'm really new to this... escape the data before parsing?? Oh, I apologize.Just take the data from the form that you're passing to the function and use the escape() function with it.For example, use this as your function:function answer() {var emptyPocketsOne = eval(escape(document.calc.regex.value))parseemptyPocketsOne = emptyPocketsOne.match(/Empty Pockets: (\d+)/)var usedPocketsOne = eval(escape(document.calc.regex.value))parsusedPocketsOne = usedPocketsOne.match(/Used Pockets: (\d+)/)var labSpaceOne = eval(escape(document.calc.regex.value))parselabSpaceOne = labSpaceOne.match(/Drug Lab Size: (\d+)/)var junkiesOne = eval(escape(document.calc.regex.value))parsejunkiesOne = junkiesOne.match(/Working Junkies: (\d+)/)var JunkiesTwo = eval(escape(document.calc.regex.value))parseJunkiesTwo = JunkiesTwo.match(/Training Junkies: (\d+)/)var emptyPocketsTwo = eval(escape(document.calc.regex.value))parseemptyPocketsTwo = emptyPocketsTwo.match(/Empty Pockets: (\d+)/)var usedPocketsTwo = eval(escape(document.calc.regex.value))parsusedPocketsTwo = usedPocketsTwo.match(/Used Pockets: (\d+)/)var labSpaceTwo = eval(escape(document.calc.regex.value))parseelabSpaceTwo = labSpaceTwo.match(/Drug Lab Size: (\d+)/)var junkiesTwo = eval(escape(document.calc.regex.value))parsejunkiesTwo = junkiesTwo.match(/Working Junkies: (\d+)/)var JunkiesTwo = eval(escape(document.calc.regex.value))parseJunkiesTwo = JunkiesTwo.match(/Training Junkies: (\d+)/)var totalJunkies = (junkiesOne[1] + junkiesTwo[1])var resultOne = 0while (usedPocketsOne[1] > totalJunkies - labSpaceOne[1] * 17) { resultOne = resultOne + 1 usedPocketsOne[1] = usedPocketsOne[1] - totalJunkies + labSpaceOne[1] * 17 totalJunkies = totalJunkies + 1}var resultTwo = 0while (usedPocketsTwo[1] > totalJunkies - labSpaceTwo[1] * 17) { resultTwo = resultTwo + 1 usedPocketsTwo[1] = usedPocketsTwo[1] - totalJunkies + labSpaceTwo[1] * 17}var visitsOne = eval(escape(document.calc.regex.value))parsevisitsOne = visitsOne.match(/Dealer Visits Remaining: (\d)/)if (visitsOne[1] == 0) { resultOne = resultOne - 2 usedPocketsOne[1] = usedPocketsOne[1] + 1}var visitsTwo = eval(escape(document.calc.regex.value))parsevisitsTwo = visitsTwo.match(/Dealer Visits Remaining: (\d)/)if (visitsTwo[1] == 0) { resultTwo = resultTwo - 2 usedPocketsTwo[1] = usedPocketsTwo[1] + 1}document.getElementById('result').innerHTML ="<b>You can spend " + resultOne + " ( " + resultTwo + " ) " + "tokens" + "," + " You need to purchase " + (emptyPocketsOne[1] - usedPocketsOne[1]) + " ( " + (emptyPocketsTwo[1]- usedPocketsTwo[1]) + " ) " + " drugs" + ".</b>"}// End--> Link to comment Share on other sites More sharing options...
Chocolate570 Posted March 9, 2007 Share Posted March 9, 2007 Sorry, i'm really new to this... escape the data before parsing?? Oh, I apologize.Just take the data from the form that you're passing to the function and use the escape() function with it.For example, use this as your function:function answer() {var emptyPocketsOne = eval(escape(document.calc.regex.value))parseemptyPocketsOne = emptyPocketsOne.match(/Empty Pockets: (\d+)/)var usedPocketsOne = eval(escape(document.calc.regex.value))parsusedPocketsOne = usedPocketsOne.match(/Used Pockets: (\d+)/)var labSpaceOne = eval(escape(document.calc.regex.value))parselabSpaceOne = labSpaceOne.match(/Drug Lab Size: (\d+)/)var junkiesOne = eval(escape(document.calc.regex.value))parsejunkiesOne = junkiesOne.match(/Working Junkies: (\d+)/)var JunkiesTwo = eval(escape(document.calc.regex.value))parseJunkiesTwo = JunkiesTwo.match(/Training Junkies: (\d+)/)var emptyPocketsTwo = eval(escape(document.calc.regex.value))parseemptyPocketsTwo = emptyPocketsTwo.match(/Empty Pockets: (\d+)/)var usedPocketsTwo = eval(escape(document.calc.regex.value))parsusedPocketsTwo = usedPocketsTwo.match(/Used Pockets: (\d+)/)var labSpaceTwo = eval(escape(document.calc.regex.value))parseelabSpaceTwo = labSpaceTwo.match(/Drug Lab Size: (\d+)/)var junkiesTwo = eval(escape(document.calc.regex.value))parsejunkiesTwo = junkiesTwo.match(/Working Junkies: (\d+)/)var JunkiesTwo = eval(escape(document.calc.regex.value))parseJunkiesTwo = JunkiesTwo.match(/Training Junkies: (\d+)/)var totalJunkies = (junkiesOne[1] + junkiesTwo[1])var resultOne = 0while (usedPocketsOne[1] > totalJunkies - labSpaceOne[1] * 17) { resultOne = resultOne + 1 usedPocketsOne[1] = usedPocketsOne[1] - totalJunkies + labSpaceOne[1] * 17 totalJunkies = totalJunkies + 1}var resultTwo = 0while (usedPocketsTwo[1] > totalJunkies - labSpaceTwo[1] * 17) { resultTwo = resultTwo + 1 usedPocketsTwo[1] = usedPocketsTwo[1] - totalJunkies + labSpaceTwo[1] * 17}var visitsOne = eval(escape(document.calc.regex.value))parsevisitsOne = visitsOne.match(/Dealer Visits Remaining: (\d)/)if (visitsOne[1] == 0) { resultOne = resultOne - 2 usedPocketsOne[1] = usedPocketsOne[1] + 1}var visitsTwo = eval(escape(document.calc.regex.value))parsevisitsTwo = visitsTwo.match(/Dealer Visits Remaining: (\d)/)if (visitsTwo[1] == 0) { resultTwo = resultTwo - 2 usedPocketsTwo[1] = usedPocketsTwo[1] + 1}document.getElementById('result').innerHTML ="<b>You can spend " + resultOne + " ( " + resultTwo + " ) " + "tokens" + "," + " You need to purchase " + (emptyPocketsOne[1] - usedPocketsOne[1]) + " ( " + (emptyPocketsTwo[1]- usedPocketsTwo[1]) + " ) " + " drugs" + ".</b>"}// End--> Link to comment Share on other sites More sharing options...
Nazkyn Posted March 10, 2007 Author Share Posted March 10, 2007 Ok, it seems to be checking the form now BUT i'm now getting a 'Missing ; Before Statement' on line two - function answer() {var emptyPocketsOne = eval(escape(document.calc.regex.value))parseemptyPocketsOne = emptyPocketsOne.match(/Empty Pockets: (\d+)/)var usedPocketsOne = eval(escape(document.calc.regex.value))parsusedPocketsOne = usedPocketsOne.match(/Used Pockets: (\d+)/)var labSpaceOne = eval(escape(document.calc.regex.value))parselabSpaceOne = labSpaceOne.match(/Drug Lab Size: (\d+)/)var junkiesOne = eval(escape(document.calc.regex.value))parsejunkiesOne = junkiesOne.match(/Working Junkies: (\d+)/)var emptyPocketsTwo = eval(escape(document.calc.regex.value))parseemptyPocketsTwo = emptyPocketsTwo.match(/Empty Pockets: (\d+)/)var usedPocketsTwo = eval(escape(document.calc.regex.value))parsusedPocketsTwo = usedPocketsTwo.match(/Used Pockets: (\d+)/)var labSpaceTwo = eval(escape(document.calc.regex.value))parseelabSpaceTwo = labSpaceTwo.match(/Drug Lab Size: (\d+)/)var junkiesTwo = eval(escape(document.calc.regex.value))parsejunkiesTwo = junkiesTwo.match(/Training Junkies: (\d+)/)var totalJunkies = (junkiesOne[1] + junkiesTwo[1])var resultOne = 0while (usedPocketsOne[1] > totalJunkies - labSpaceOne[1] * 17) { resultOne = resultOne + 1 usedPocketsOne[1] = usedPocketsOne[1] - totalJunkies + labSpaceOne[1] * 17 totalJunkies = totalJunkies + 1}var resultTwo = 0while (usedPocketsTwo[1] > totalJunkies - labSpaceTwo[1] * 17) { resultTwo = resultTwo + 1 usedPocketsTwo[1] = usedPocketsTwo[1] - totalJunkies + labSpaceTwo[1] * 17}var visitsOne = eval(escape(document.calc.regex.value))parsevisitsOne = visitsOne.match(/Dealer Visits Remaining: (\d)/)if (visitsOne[1] == 0) { resultOne = resultOne - 2 usedPocketsOne[1] = usedPocketsOne[1] + 1}var visitsTwo = eval(escape(document.calc.regex.value))parsevisitsTwo = visitsTwo.match(/Dealer Visits Remaining: (\d)/)if (visitsTwo[1] == 0) { resultTwo = resultTwo - 2 usedPocketsTwo[1] = usedPocketsTwo[1] + 1}document.getElementById('result').innerHTML ="<b>You can spend " + resultOne + " ( " + resultTwo + " ) " + " tokens" + "," + " You need to purchase " + (emptyPocketsOne[1] - usedPocketsOne[1]) + " ( " + (emptyPocketsTwo[1] - usedPocketsTwo[1]) + " ) " + " drugs" + ".</b>"}// End--> Link to comment Share on other sites More sharing options...
Chocolate570 Posted March 10, 2007 Share Posted March 10, 2007 Ahh. I think I may just be stupid. :)Try this: <!--Beginfunction answer() {var emptyPocketsOne = document.calc.regex.valueparseemptyPocketsOne = emptyPocketsOne.match(/Empty Pockets: (\d+)/)var usedPocketsOne = document.calc.regex.valueparsusedPocketsOne = usedPocketsOne.match(/Used Pockets: (\d+)/)var labSpaceOne = document.calc.regex.valueparselabSpaceOne = labSpaceOne.match(/Drug Lab Size: (\d+)/)var junkiesOne = document.calc.regex.valueparsejunkiesOne = junkiesOne.match(/Working Junkies: (\d+)/)var JunkiesTwo = document.calc.regex.valueparseJunkiesTwo = JunkiesTwo.match(/Training Junkies: (\d+)/)var emptyPocketsTwo = document.calc.regex.valueparseemptyPocketsTwo = emptyPocketsTwo.match(/Empty Pockets: (\d+)/)var usedPocketsTwo = document.calc.regex.valueparsusedPocketsTwo = usedPocketsTwo.match(/Used Pockets: (\d+)/)var labSpaceTwo = document.calc.regex.valueparseelabSpaceTwo = labSpaceTwo.match(/Drug Lab Size: (\d+)/)var junkiesTwo = document.calc.regex.valueparsejunkiesTwo = junkiesTwo.match(/Working Junkies: (\d+)/)var JunkiesTwo = document.calc.regex.valueparseJunkiesTwo = JunkiesTwo.match(/Training Junkies: (\d+)/)var totalJunkies = (junkiesOne[1] + junkiesTwo[1])var resultOne = 0while (usedPocketsOne[1] > totalJunkies - labSpaceOne[1] * 17) { resultOne = resultOne + 1 usedPocketsOne[1] = usedPocketsOne[1] - totalJunkies + labSpaceOne[1] * 17 totalJunkies = totalJunkies + 1}var resultTwo = 0while (usedPocketsTwo[1] > totalJunkies - labSpaceTwo[1] * 17) { resultTwo = resultTwo + 1 usedPocketsTwo[1] = usedPocketsTwo[1] - totalJunkies + labSpaceTwo[1] * 17}var visitsOne = document.calc.regex.valueparsevisitsOne = visitsOne.match(/Dealer Visits Remaining: (\d)/)if (visitsOne[1] == 0) { resultOne = resultOne - 2 usedPocketsOne[1] = usedPocketsOne[1] + 1}var visitsTwo = document.calc.regex.valueparsevisitsTwo = visitsTwo.match(/Dealer Visits Remaining: (\d)/)if (visitsTwo[1] == 0) { resultTwo = resultTwo - 2 usedPocketsTwo[1] = usedPocketsTwo[1] + 1}document.getElementById('result').innerHTML ="<b>You can spend " + resultOne + " ( " + resultTwo + " ) " + "tokens" + "," + " You need to purchase " + (emptyPocketsOne[1] - usedPocketsOne[1]) + " ( " + (emptyPocketsTwo[1]- usedPocketsTwo[1]) + " ) " + " drugs" + ".</b>"}// End--> Link to comment Share on other sites More sharing options...
Nazkyn Posted March 10, 2007 Author Share Posted March 10, 2007 Thanks Getting somewhere, no errors atall But the script isn't reading from the form, do you know what's wrong there??EDIT: I changed the script to this - <!--Beginfunction answer() {var emptyPocketsOne = document.calc.regex.value.match(/Empty Pockets: (\d+)/);var usedPocketsOne = document.calc.regex.value.match(/Used Pockets: (\d+)/);var labSpaceOne = document.calc.regex.value.match(/Drug Lab Size: (\d+)/);var junkiesOne = document.calc.regex.value.match(/Working Junkies: (\d+)/);var emptyPocketsTwo = document.calc.regex.value.match(/Empty Pockets: (\d+)/);var usedPocketsTwo = document.calc.regex.value.match(/Used Pockets: (\d+)/);var labSpaceTwo = document.calc.regex.value.match(/Drug Lab Size: (\d+)/);var junkiesTwo = document.calc.regex.value.match(/Training Junkies: (\d+)/);var totalJunkies = junkiesOne[1] + junkiesTwo[1];var resultOne = 0;while (usedPocketsOne[1] > totalJunkies - labSpaceOne[1] * 17) { resultOne = resultOne + 1; usedPocketsOne[1] = usedPocketsOne[1] - totalJunkies + labSpaceOne[1] * 17; totalJunkies = totalJunkies + 1;}var resultTwo = 0;while (usedPocketsTwo[1] > totalJunkies - labSpaceTwo[1] * 17) { resultTwo = resultTwo + 1; usedPocketsTwo[1] = usedPocketsTwo[1] - totalJunkies + labSpaceTwo[1] * 17;}var visitsOne = document.calc.regex.value.match(/Dealer Visits Remaining: (\d)/);if (visitsOne == 0) { resultOne = resultOne - 2; usedPocketsOne[1] = usedPocketsOne[1] + 1;}var visitsTwo = document.calc.regex.value.match(/Dealer Visits Remaining: (\d)/);if (visitsTwo == 0) { resultTwo = resultTwo - 2; usedPocketsTwo[1] = usedPocketsTwo[1] + 1;}document.getElementById('result').innerHTML ="<b>You can spend " + resultOne + " ( " + resultTwo + " ) " + " tokens" + "," + " You need to purchase " + (emptyPocketsOne[1] - usedPocketsOne[1]) + " ( " + (emptyPocketsTwo[1] - usedPocketsTwo[1]) + " ) " + " drugs" + ".</b>";}// End--> And it is, finally reading from the form... though it isn't doing the loop correctly, or maybe it is... but the end result is way off I don't have a clue, also I need the form to accept comma's in numerical value's at the end of each text string, any idea's Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now