Just nu i M3-nätverket
Jump to content

Fråga om sträng


tjaffsel

Recommended Posts

Jag har en sträng som innehåller bokstäver, specialtecken och siffror, t ex:

 

blabal6bal8balbal1bla5blabla

 

Jag skulle vilja plocka ut vissa siffror ur strängen och addera dem. Hur gör jag det? Jag har testat lite och lyckats att plocka ut en siffra, men hur får jag ut den andra och kanske den tredje så jag kan lägga ihop dem och hur adderar jag dem?

Link to comment
Share on other sites

Du måste nog ha tydligare regler för vilka siffror/teckan du vill plocka ut än "vissa siffror" och "den andra och kanske den tredje".

Antingen så vet du vilka positioner (relativt något eller absolut) ett visst tecken du vill ha eller så vet du att du vill ha alla siffror alt. tecken...

Link to comment
Share on other sites

Du måste nog ha tydligare regler för vilka siffror/teckan du vill plocka ut än "vissa siffror" och "den andra och kanske den tredje".

Antingen så vet du vilka positioner (relativt något eller absolut) ett visst tecken du vill ha eller så vet du att du vill ha alla siffror alt. tecken...

 

Nej, det förstår jag mig på. Jag vill veta hur man plockar ut flera, i detta fall: siffror, och adderar dem.

Link to comment
Share on other sites

Eftersom jag gillar utmaningar och javascript skrev jag ett exempel där du kan välja mellan vilket sätt du vill summera utvalda siffror/kombinationer :)

[log]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="sv" xml:lang="sv">
<head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Content-Language" content="sv" />
<title>Untitled</title>
<script type="text/javascript">
var strText="das#4fgt5tr6yt#7hhhhh8";
function Init() {
document.getElementById("VisaText").innerHTML="Text: "+strText.bold();
}
function GetNumbersInText() {
var arrDigits=strText.match(/\d+/g);
var arrSpecialDigits=strText.match(/#\d/g);
var oSearchWay=document.getElementsByName("SearchWay");
var oVisaSumma=document.getElementById("VisaSumma");
var summa=0;
if(oSearchWay[0].checked){
	for(i=0;i<=arrDigits.length-1;i++) {
		summa+=parseInt(arrDigits[i]);
	}
}
else {
	for(x=0;x<=arrSpecialDigits.length-1;x++) {
		var strSpecialDigits=arrSpecialDigits[x].match(/\d+/g);
			summa+=parseInt(strSpecialDigits);
	}
}
oVisaSumma.innerHTML=summa;
}
</script>
</head>

<body onload="Init();">
<p id="VisaText"></p>
<input type="Radio" name="SearchWay" value="1" checked="checked" />Enkel summering(siffra)<br />
<input type="Radio" name="SearchWay" value="2" />Avancerad summering(#siffra)<br /><br />
<p id="VisaSumma"></p>
<input type="Button" onclick="GetNumbersInText();" value="Summera" />
</body>
</html>

[/log]

Link to comment
Share on other sites

Eftersom jag gillar utmaningar och javascript skrev jag ett exempel där du kan välja mellan vilket sätt du vill summera utvalda siffror/kombinationer :)

[log]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="sv" xml:lang="sv">
<head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Content-Language" content="sv" />
<title>Untitled</title>
<script type="text/javascript">
var strText="das#4fgt5tr6yt#7hhhhh8";
function Init() {
document.getElementById("VisaText").innerHTML="Text: "+strText.bold();
}
function GetNumbersInText() {
var arrDigits=strText.match(/\d+/g);
var arrSpecialDigits=strText.match(/#\d/g);
var oSearchWay=document.getElementsByName("SearchWay");
var oVisaSumma=document.getElementById("VisaSumma");
var summa=0;
if(oSearchWay[0].checked){
	for(i=0;i<=arrDigits.length-1;i++) {
		summa+=parseInt(arrDigits[i]);
	}
}
else {
	for(x=0;x<=arrSpecialDigits.length-1;x++) {
		var strSpecialDigits=arrSpecialDigits[x].match(/\d+/g);
			summa+=parseInt(strSpecialDigits);
	}
}
oVisaSumma.innerHTML=summa;
}
</script>
</head>

<body onload="Init();">
<p id="VisaText"></p>
<input type="Radio" name="SearchWay" value="1" checked="checked" />Enkel summering(siffra)<br />
<input type="Radio" name="SearchWay" value="2" />Avancerad summering(#siffra)<br /><br />
<p id="VisaSumma"></p>
<input type="Button" onclick="GetNumbersInText();" value="Summera" />
</body>
</html>

[/log]

 

Kan jag plocka ut samma siffror ur en sträng? Antag att det i strängen förekommer siffran 4 på tre olika ställen. Går det att plocka ut 4:an och lägga ihop dem?

Link to comment
Share on other sites

Går det att plocka ut 4:an och lägga ihop dem?
Har du testat scriptet, för det är precis det scriptet gör.

Du kan ju enbart fylla texten med bokstäver och 4:or och då summeras alla 4:or eftersom det är siffror.

Eller missuppfattar jag vad du vill göra...?

Link to comment
Share on other sites

  • 3 weeks later...

Har du testat scriptet, för det är precis det scriptet gör.

Du kan ju enbart fylla texten med bokstäver och 4:or och då summeras alla 4:or eftersom det är siffror.

Eller missuppfattar jag vad du vill göra...?

 

Det kan ju finnas olika siffror och man kanske bara vill summera vissa. Man kanske vill plocka ut två treor ur en sifferkombination.

Link to comment
Share on other sites

Micke_skane
Man kanske vill plocka ut två treor ur en sifferkombination
Är det nått sånt här du tänkt dig?

Sen är det frågan om t ex 66 är två sexor eller talet 66...

 

[log]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="sv" xml:lang="sv">
<head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Content-Language" content="sv" />
<title>Untitled</title>
<script type="text/javascript">
var strText="das#4fgt5tr6yt#7hh6h6l6hh8";
function Init() {
document.getElementById("VisaText").innerHTML="Text: "+strText.bold();
}
function GetNumbersInText() {
var arrDigits=strText.match(/\d+/g);
var arrSpecialDigits=strText.match(/#\d/g);
var oSearchWay=document.getElementsByName("SearchWay");
var oVisaSumma=document.getElementById("VisaSumma");
var strAddNumbers="";
var summa=0;
if(oSearchWay[0].checked){
	for(i=0;i<=arrDigits.length-1;i++) {
		strAddNumbers+=arrDigits[i]+"+";
		summa+=parseInt(arrDigits[i]);
	}
}
if(oSearchWay[1].checked) {
	for(x=0;x<=arrSpecialDigits.length-1;x++) {
		var strSpecialDigits=arrSpecialDigits[x].match(/\d+/g);
			strAddNumbers+=strSpecialDigits+"+";
			summa+=parseInt(strSpecialDigits);
	}
}
if(oSearchWay[2].checked) {
	var strSelValue = document.getElementById("digits").value;
	for(i=0;i<=arrDigits.length-1;i++) {
		if(arrDigits[i]==strSelValue) {
			strAddNumbers+=arrDigits[i]+"+";
			summa+=parseInt(arrDigits[i]);
		}
	}
}
oVisaSumma.innerHTML=strAddNumbers.substr(0,strAddNumbers.length-1)+" = "+summa;
}
function ToggleDigitsSel(strValue) {
var oSel = document.getElementById("DivDigits");
oSel.style.display=(strValue==3)? "block":"none";
}
</script>
</head>

<body onload="Init();">
<p id="VisaText"></p>
<input type="Radio" name="SearchWay" onclick="ToggleDigitsSel(this.value);" value="1" checked="checked" />Enkel summering(siffra)<br />
<input type="Radio" name="SearchWay" onclick="ToggleDigitsSel(this.value);" value="2" />Avancerad summering(#siffra)<br />
<input type="Radio" name="SearchWay" onclick="ToggleDigitsSel(this.value);" value="3" />Unik siffra<br /><br />
<div id="DivDigits" style="display:none">
<select id="digits" name="digits">
	<option value="0">Valj...</option>
	<option value="1">1</option>
	<option value="2">2</option>
	<option value="3">3</option>
	<option value="4">4</option>
	<option value="5">5</option>
	<option value="6">6</option>
	<option value="7">7</option>
	<option value="8">8</option>
	<option value="9">9</option>
</select>
</div>
<p id="VisaSumma"></p>
<input type="Button" onclick="GetNumbersInText();" value="Summera" />
</body>
</html>

[/log]

Link to comment
Share on other sites

Är det nått sånt här du tänkt dig?

Sen är det frågan om t ex 66 är två sexor eller talet 66...

 

[log]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="sv" xml:lang="sv">
<head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Content-Language" content="sv" />
<title>Untitled</title>
<script type="text/javascript">
var strText="das#4fgt5tr6yt#7hh6h6l6hh8";
function Init() {
document.getElementById("VisaText").innerHTML="Text: "+strText.bold();
}
function GetNumbersInText() {
var arrDigits=strText.match(/\d+/g);
var arrSpecialDigits=strText.match(/#\d/g);
var oSearchWay=document.getElementsByName("SearchWay");
var oVisaSumma=document.getElementById("VisaSumma");
var strAddNumbers="";
var summa=0;
if(oSearchWay[0].checked){
	for(i=0;i<=arrDigits.length-1;i++) {
		strAddNumbers+=arrDigits[i]+"+";
		summa+=parseInt(arrDigits[i]);
	}
}
if(oSearchWay[1].checked) {
	for(x=0;x<=arrSpecialDigits.length-1;x++) {
		var strSpecialDigits=arrSpecialDigits[x].match(/\d+/g);
			strAddNumbers+=strSpecialDigits+"+";
			summa+=parseInt(strSpecialDigits);
	}
}
if(oSearchWay[2].checked) {
	var strSelValue = document.getElementById("digits").value;
	for(i=0;i<=arrDigits.length-1;i++) {
		if(arrDigits[i]==strSelValue) {
			strAddNumbers+=arrDigits[i]+"+";
			summa+=parseInt(arrDigits[i]);
		}
	}
}
oVisaSumma.innerHTML=strAddNumbers.substr(0,strAddNumbers.length-1)+" = "+summa;
}
function ToggleDigitsSel(strValue) {
var oSel = document.getElementById("DivDigits");
oSel.style.display=(strValue==3)? "block":"none";
}
</script>
</head>

<body onload="Init();">
<p id="VisaText"></p>
<input type="Radio" name="SearchWay" onclick="ToggleDigitsSel(this.value);" value="1" checked="checked" />Enkel summering(siffra)<br />
<input type="Radio" name="SearchWay" onclick="ToggleDigitsSel(this.value);" value="2" />Avancerad summering(#siffra)<br />
<input type="Radio" name="SearchWay" onclick="ToggleDigitsSel(this.value);" value="3" />Unik siffra<br /><br />
<div id="DivDigits" style="display:none">
<select id="digits" name="digits">
	<option value="0">Valj...</option>
	<option value="1">1</option>
	<option value="2">2</option>
	<option value="3">3</option>
	<option value="4">4</option>
	<option value="5">5</option>
	<option value="6">6</option>
	<option value="7">7</option>
	<option value="8">8</option>
	<option value="9">9</option>
</select>
</div>
<p id="VisaSumma"></p>
<input type="Button" onclick="GetNumbersInText();" value="Summera" />
</body>
</html>

[/log]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...