Toon posts:

[JS] Reguliere-expressies

Pagina: 1
Acties:

Verwijderd

Topicstarter
1. Hoe kan je met reguliere-expressies het midden van een stuk tekst verkrijgen?

JavaScript:
1
2
3
4
5
6
7
8
var sTest = '<select name="MySelect">';

//Hiertussen de reguliere-expressie om 'MySelect' te verkrijgen uit de string en te plaatsen in variabele 'sName'

alert(sName);

//Output
'MySelect'


2. Hoe kan je een stuk tekst op een bepaalde plek in een string invoegen m.b.v. reguliere-expressies?

JavaScript:
1
2
3
4
5
6
7
8
var sTest = '<select name="MySelect">';

//Hiertussen de reguliere-expressie om 'selected="selected"' in in te voegen in de string

alert(sTest);

//Output
'<select name="MySelect" selected="selected">'

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:45

crisp

Devver

Pixelated

voordat ik hier weer een cursus reguliere expressies ga geven, mag ik vragen wat het uiteindelijke doel is? Ik zou toch eerder gaan voor reguliere DOM methoden om attributen toe te voegen en op te vragen uit HTML...

Intentionally left blank


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Verwijderd schreef op 16 april 2004 @ 14:14:
JavaScript:
1
'<select name="MySelect" selected="selected">'
neem anders eerst even een cursusje html, want <select selected="selected"> bestaat afaik niet :)

HTML:
1
2
3
  <select name="naam">
    <option value="waarde" selected="selected">text</option
  </select>


en als aanvulling op crisp:
document.createElement('option')

of ff zoeken op
new Option()

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

Topicstarter
Ok. Kort gezegd, ik heb een tabel die op zijn beurt weer een aantal kolommen bevat. In sommige van die kolommen staat een object/formulierelement (<select>'s e.d.).

Via een functie wil ik nu opvragen welke option van een select geselecteerd is en dit dacht ik op de volgende manier te doen:

JavaScript:
1
2
3
var sElementName = //Verkrijg de naam van het element in de betreffende kolom uit 'document.getElementById('MyTable').rows[i].cells[j].innerHTML'

var iSelectedOption = document.getElementsByName(sElementName).options[document.getElementsByName(sElementName).selectedIndex].value;


Vervolgens wil ik met de verkregen gegevens de geselecteerd option 'vastzetten':

JavaScript:
1
2
//Zet de geselecteerde option 'vast' 
document.getElementById('MyTable').rows[i].cells[j].innerHTML = //Voeg 'selected="selected"' toe aan het element waarbij de value == iSelectedOption


Misschien zul je je wel afvragen waarom ik niet gewoon iets gebruik van element.selected = true, maar dat kan niet i.v.m. het uiteindelijke doel van de functie.

PS. Ik heb bewust alleen de (brood)nodige uitleg m.b.t. mijn functie gegeven, omdat het - als ik alles uit moet gaan leggen - een heel (lang) verhaal wordt.

Verwijderd

Topicstarter
faabman schreef op 16 april 2004 @ 14:42:
[...]


neem anders eerst even een cursusje html, want <select selected="selected"> bestaat afaik niet :)
selected="selected" gebruik ik, om alvast toe te werken naar/te wennen aan XML-geldige opmaak ;) -> lees maar eens op: www.w3schools.com

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:45

crisp

Devver

Pixelated

mbv getElementsByTagName('select') kan je eenvoudig alle selects uit je document ophalen en daarvan de selectedIndex uitvragen. Ik begrijp alleen verder niet wat je bedoelt met 'vastzetten', je zou de select ook kunnen disablen zodat hij niet meer gewijzigd kan worden.

En wat faabman bedoelt met selected="selected" is dat dat een property van een option-element is en niet van een select-element ;)

[ Voor 21% gewijzigd door crisp op 16-04-2004 14:57 ]

Intentionally left blank


Verwijderd

Topicstarter
Ik ben nu behoorlijk aan het oefenen geslagen met de reguliere-expressies, maar ik snap nog steeds niet hoe je een waarde kan selecteren aan de hand van een begin code en een eind code:

JavaScript:
1
2
3
4
5
6
7
var sTest = '<select name="MyName">';

var sRegExp = /<select name="\w+">/i

var sRegExpResult = sRegExp.exec(sTest);

alert(sRegExpResult[0]);


Ik wil in dit voorbeeld 'MyName' selecteren/matchen.

[ Voor 37% gewijzigd door Verwijderd op 16-04-2004 22:29 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:45

crisp

Devver

Pixelated

je moet ook aangeven dat hij dat gedeelte moet capturen:

JavaScript:
1
2
3
4
5
6
7
var sTest = '<select name="MyName">';

var sRegExp = /<select name="(\w+)">/i

var sRegExpResult = sRegExp.exec(sTest);

alert(sRegExpResult[1]);

Intentionally left blank


Verwijderd

Topicstarter
Ok. Thanks!

[ Voor 5% gewijzigd door Verwijderd op 16-04-2004 23:03 ]

Pagina: 1