Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


req ex i javascript för e-post

Postades av 2006-09-14 17:34:03 - Patrik Wårdmark, i forum regular expressions, Tråden har 6 Kommentarer och lästs av 1327 personer

Har ett javaskript som på klientsidan gör epostadresser inom body till klickbara länkar. Nu är det dock så att jag vill ange ett undantag, nämligen att epostadresser som ligger inom ett formulär ska ignoreras. På nåt sätt ska väl en koll ske att eposten inte föregås av <form och inte har </form> efter sig. Hur fixar jag det?

<code><SCRIPT language="JavaScript" type="text/javascript">
<!--
function RecodeEposts() {
var strang= document.body.innerHTML;
// gör epost klickbar
strang= strang.replace(/(^|\s|>)([^\s\"\|>]+@[^\s<\|]+)/gim,'$1$2');
document.body.innerHTML= strang;
}
//kör
RecodeEposts();
//-->
</SCRIPT></code>


Svara

Sv: req ex i javascript för e-post

Postades av 2006-09-16 01:18:25 - Patrik Wårdmark

Rätta mig om jag har fel nu, men denna variant jag lyckats sätta ihop fungerar väl fast gör precis tvärtom mot det jag önskar. Denna hittar epostadresser inom ett formulär istället för utanför.

<code>strang=strang.replace(/(<form[\w\W]*?)(^|\s|>)([^\s\"\|>]+@[^\s<\|]+)([\w\W]*?form>)/gim,'$1$2$3$4');</code>

Hur får jag den tvärtom?
Hur talar jag om att INTE <form får finnas före och INTE form> får finnas efter?


Svara

Sv:req ex i javascript för e-post

Postades av 2006-09-18 10:06:07 - David Tellander

function makeEmailLinks( markup )
{
	var inForm = false;
	var linkTemplate = "#";
	 return markup.replace( /(?:<\/?form[^>]*>)|(?:\w+@\w+\.\w{2,3})/ig, function ( str ) {
		var f2 = str.substr(0,2).toLowerCase();
		switch ( f2 )
		{
			case "<f":
				inForm = true;
				return str;
				
			case "</":
				inForm = false;
				return str;
				
			default:
				if ( !inForm )
				{
					return linkTemplate.replace( /#/g, str );	
				}
				return str;
		}
	});
}


Använd möjligheten att skicka med en funktion som andra parameter till replace metoden. Den funktionen kommer att anropas varje gång regexet matchas i strängen och du kan välja vad som returneras. Om en form-starttag matchas, sätt en flagga som indikerar att vi är inne i ett form-element, och nollställ den när en form-sluttag matchas, returnera det som matchats. Om en mail-address matchas kolla med flaggan och ersätt bara om flaggan inte är satt.


Svara

Sv: req ex i javascript för e-post

Postades av 2006-09-18 13:04:26 - Patrik Wårdmark

Varken javascript eller reg exp är tyvärr någon av mina starka sidor. Skulle du kunna visa hur du menar att scriptet i mitt allra första inlägg ska skrivas om för att få med din funktionalitet?


Svara

Sv:req ex i javascript för e-post

Postades av 2006-09-18 13:33:21 - David Tellander

Visst:

function RecodeEposts() {
    document.body.innerHTML= makeEmailLinks( document.body.innerHTML );
}

// function makeEmailLinks( markup)
// ...


Edit: regexet för epost-adressen vill du nog ändra, det var bara nåt snabbt jag slängde ihop i testsyfte...


Svara

Sv: req ex i javascript för e-post

Postades av 2006-09-18 22:32:01 - Patrik Wårdmark

Får jag besvära om ett ytterligare tillägg? :)
Förutom att ignorera de inom ett formulär, kan man även lägga till att även epostadresser som redan finns inom en a-tag också ska ignoreras?


Svara

Sv:req ex i javascript för e-post

Postades av 2006-09-19 09:09:48 - David Tellander

Jepp:

function makeEmailLinks( markup )
{
	var flags = 0;
	var linkTemplate = "#";
	 return markup.replace( /(<\/?form[^>]*>)|(<\/?a)|(?:\w+@\w+\.\w{2,3})/ig, function ( str, form, a ) {
		var result = str;
		if ( form )
			if ( form.charAt(1) == "/" )
				flags &= ~0x1;
			else
				flags |= 0x1;
		else if ( a )
			if ( a.charAt(1) == "/" )
				flags &= ~0x2;
			else
				flags |= 0x2;
		else
			if ( flags == 0 )
				result = linkTemplate.replace( /#/g, str );
		return result;
	});
}


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
711
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies