Jag vill kolla om det finns ett komma i texten
Varför funkar inte detta:
if (charge1Tmp != ",") {.......
när detta funkar:
if (charge1Tmp != "A") {.......
hur skriver jag komma på annat sätt för att få det att funka?
mvh
Urban
10 svar · 566 visningar · startad av urban_hahne
Jag vill kolla om det finns ett komma i texten
Varför funkar inte detta:
if (charge1Tmp != ",") {.......
när detta funkar:
if (charge1Tmp != "A") {.......
hur skriver jag komma på annat sätt för att få det att funka?
mvh
Urban
om texten innehåller komma
if(charge1Tmp.indexOf(",") != -1)
eller om texten inte innehåller ett komma:
if(charge1Tmp.indexOf(",") [B]==[/B] -1)
borde funka..
NOP. funkade inte. Bokstäver funka men inte vissa specialtecken. I asp skriver man ju ofta chr(asciivärdet) när man vill jämföra specialtecken. t.ex if variabelA=CHR(44) then .....
vad är motsvarigheten i javascript.
du måste ha någe diverse special fuffens för dig.. :)
65 vart ju A var det inte komma tecknet han skulle åt??
just ja.. 44.. :x
Jo, jag gav bara ett exempel. Jag utgår från att Urban klurar ut vad som behöver ändras.
Jag får det inte att funka. Vad jag vill är att validera ett fält som får innehålla ett decimaltal med eller utan minustecken och med antingen ett decimalkomma eller en decimalpunkt.
Koden ser ut så här när den funkar för att godkänna talet med decimalpunkt och minustecken. Men jag vill även kunna skriva decimalkomma utan att få felmeddelande.
function checkCharge1(){
var charge1Tmp=document.newManifestForm3.charge1.value;
if (charge1Tmp != "-"){
if(isNaN(charge1Tmp)){
alert("Amount 1 have to be a value with or without decimal point!");
charge1Tmp=charge1Tmp.substring(0,charge1Tmp.length-1);
document.newManifestForm3.charge1.value=charge1Tmp;
}
}
document.newManifestForm3charge1.value=charge1Tmp;
}
hur gör jag?
Enklast är kanske att använda ett regexp
function checkCharge1()
{
var val = document.newManifestForm3.charge1.value.replace(/,/g, ".");
if (/^-?\d+\.\d+$/.test(val)){
alert("input okay");
} else {
alert("input not okay");
}
}
Det ser komplicerat utmed all / \ m.m kan man få en enkel förklaring om vad allt står för. Jag har lite svårt för att använda kod som jag inte förstår. Även om den funkar. Kanske det finns någon bra länk till lite mer info.
Den teknik som utnyttjas kallas regular expressions. Ett försök till förklaring följer:
function checkCharge1()
{
var val = document.newManifestForm3.charge1.value.replace(/,/g, "."); //ersätt alla , med . och spara resultatet i val
//här undersöker vi innehållet i val
//^ matcha början av val
//-? matcha ett eller inget minustecken
//\d+ matcha en eller flera siffror
//\. matcha en punkt
//\d+ matcha en eller flera siffror
//$ matcha slutet av val
if (/^-?\d+\.\d+$/.test(val)){
alert("input okay");
} else {
alert("input not okay");
}
}
Kanonbra! Med din hjälp och med bra info från
http://www.javascriptkit.com/javatutors/re.shtml
står det helt klart. En får tacke.