Just nu i M3-nätverket
Gå till innehåll

Fråga om sträng


tjaffsel

Rekommendera Poster

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?

Länk till kommentar
Dela på andra webbplatser

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...

Länk till kommentar
Dela på andra webbplatser

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.

Länk till kommentar
Dela på andra webbplatser

Ok, men är det alla siffror du vill plocka ut eller är det några speciella (i så fall vad är det som gör dem speciella)?

Länk till kommentar
Dela på andra webbplatser

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]

Länk till kommentar
Dela på andra webbplatser

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?

Länk till kommentar
Dela på andra webbplatser

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...?

Länk till kommentar
Dela på andra webbplatser

  • 3 veckor senare...

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.

Länk till kommentar
Dela på andra webbplatser

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]

Länk till kommentar
Dela på andra webbplatser

Ä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]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...