webForumDet fria alternativet

inte samma tecken fler än fyra ggr

JavaScript

15 svar · 475 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Kan man göra så att det kommer upp en ruta när man trycker på submitknappen när en textarea innehåller samma tecken minst 3 ggr i rad?

Medlem sedan juni 20008 205 inlägg
#2
var reg = /(.)\1\1/;
if (reg.test(str))
    alert("Men hallå");
Medlem sedan feb. 20011 498 inlägg
#3

Vilket är textareans namn, vart ska jag skriva det i den koden?

Medlem sedan mars 2000126 inlägg
#4

Validera

Testa det här.

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE="JavaScript">
function validera(str){
var reg = /(.)\1\1/;
if (reg.test(str)){
    alert("Men hallå");
    return false;
}else{
    return true;
}

}
</SCRIPT>
</HEAD>
<BODY>

<FORM NAME="formen" METHOD="post" onSubmit="return validera(document.formen.arean.value);" ACTION="dinsida.php">
<TEXTAREA NAME="arean" COLS="10" ROWS="8"></TEXTAREA>
<BR>
<INPUT TYPE="submit" VALUE="send">
</FORM>

</BODY>
</HTML>

//Broskan

Medlem sedan feb. 20011 498 inlägg
#5
onsubmit="if(check(this)){ if(submitted){alert('Skicka bara en gång'); return false;}else{submitted=true; return true;}}else{ return false; }"

Hur ska man lägga in denna kod i koden ovanför?

onSubmit="return validera(document.form.text.value);"
Medlem sedan feb. 20011 498 inlägg
#6

Ingen som vet?

Medlem sedan mars 20015 287 inlägg
#7

Kan det inte vara läge att slå ihop denna funktion med din check() funktion?
Bara en tanke.

Medlem sedan feb. 20011 498 inlägg
#8
		<script language="javascript">

		function trim(){
		return this.replace(/^\s+|\s+$/g,"");
		}
		String.prototype.trim=trim;

		function validera(str){
		var reg = /(.)\1\1/;
		}

		function check(formobj){

		if(formobj.text.value.length==0){
		alert('Du har inte skrivit något.');
		return false;
		} else if (formobj.text.value.trim().length < 15) {
		alert('Meddelandet måste vara mer än 15 tecken.');
		return false;
		} else if (formobj.text.value.validera) {
		alert('Meddelandet är ogiltigt.');
		return false;
		} else {
		return true;	
		}
		}

		</script>

Den sista elseif fungerar inte, varför?

Medlem sedan mars 2000126 inlägg
#9

regExp?

Men du har ju strippat sönder den RegExp som du fick av spango.

var reg = /(.)\1\1/;
if (reg.test(str))
alert("Men hallå");

Du kör ju ingen test på din sträng som du inte ens skickar med som argument.
Titta på det som jag skrev tidigare och bygg vidare på det.

//Broskan

Medlem sedan mars 2000126 inlägg
#10

Validering

Testa det här.

<HTML>
<HEAD>
<TITLE></TITLE>
<STYLE>

</STYLE>
<SCRIPT LANGUAGE="JavaScript">

function validera(str){
		if(str.length == 0){
			alert('Du har inte skrivit något.');
			return false;
		}else{
			str = str.replace(/^\s+|\s+$/g,"");
			reg = /(.)\1\1/;

			if(str.length < 15){
				alert('Meddelandet måste vara mer än 15 tecken.');
				return false;
			}else if(reg.test(str)){
    			alert('Meddelandet är ogiltigt.');
				return false;
			}else{
				return true;
			}
		}
}
</SCRIPT>
</HEAD>
<BODY>

<FORM NAME="formen" METHOD="post" onSubmit="return validera(document.formen.arean.value);" ACTION="dinsida.php">
<TEXTAREA NAME="arean" COLS="20" ROWS="4"></TEXTAREA>
<BR>
<INPUT TYPE="submit" VALUE="send">
</FORM>

</BODY>
</HTML>

//Broskan

Medlem sedan feb. 20011 498 inlägg
#11

Nu när jag skriver så här:

onsubmit="if(return validera(document.form.text.value)) { if(submitted){alert('Skicka bara en gång'); return false;}else{submitted=true; return true;}}else{ return false; }"

Får jag syntaxfel på koden, varför?

Medlem sedan feb. 20011 498 inlägg
#12

Ingen som vet felet?

Medlem sedan juni 200032 967 inlägg
#13

Prova att plocka bort return i din if. Den känns lite malplacerad.

Medlem sedan feb. 20011 498 inlägg
#14

Nu fungerar det :e

Medlem sedan feb. 20011 498 inlägg
#15

denna tillåter över 3 men om man skriver en adress, tex https://www.blabla.com så varnar den, därför vill jag byta till fyra

denna tillåter 4 och högre:

reg = /(.)\1\1/;

men jag vill tillåta 3 och högre

eller kan man göra ett undantag för www?

Medlem sedan juni 20008 205 inlägg
#16

Det finns lite olika sätt...

[blue][i]// släpp bara igenom WWW[/i][/blue]
reg = /([^w])\1\1/i; 
[blue][i]// förbjud fyra tecken i rad[/i][/blue]
reg = /(.)\1\1\1/;

Punkten betyder "vilket tecken som helst", och \1 betyder "det som är i den första parantesen".
[^w] betyder "alla tecken förutom w", du kan även lägga till tecken så att exempelvis PPP accepteras: [^wp]
Och så kan du tillåta flera blanktecken i rad: [^wp\s] (\s motsvarar mellanslag, tabb och radbrytning)

558 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
430 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)