webForumDet fria alternativet

RegExp pattern i formulärfält

2 svar · 265 visningar · startad av Skarre

SkarreMedlem sedan apr. 20012 447 inlägg
#1

Jag försöker matcha en sträng med RegExp där jag hämtar mönstret från ett formulärfält, men det går inget vidare. Att använda t.ex. document.form.element.value som pattern blir ju samma sak som att stoppa in en sträng som pattern, så här:

var pattern = '/^[\w{6,32}$/';
var regexp = new RegExp(pattern);
alert(check_el.value.search(regexp));

Detta returnerar förstås -1, men tar jag bort fnuttarna så fungerar det. Frågan är bara hur jag så att säga "tar bort fnuttarna" från formulärfältvärdet.

Alltså: hur gör man en sträng till ett regexp pattern?

SkarreMedlem sedan apr. 20012 447 inlägg
#2

Nu har jag läst mig till att man inte ska omgärda mönstret med "/" när man skapar ett nytt RegExp-objekt enligt ovan, och att man dessutom måste "escapa" alla bakstreck med ytterligare ett bakstreck.

nitro2k01Medlem sedan aug. 20037 630 inlägg
#3

Jag skulle skriva detta, men på något sätt lyckades jag stänga filken med svaret i. Bla.
Kortfattat: Precis, du ska inte ha snedstreck före och efter uttrycket när du gör som du gör. Dock så behöver du inte oroa dig över att escapea bakstrecken när duy hämtar de från en input-ruta, utan bara när du skriver en sträng för hand i koden.

Genererad på 500 ms · cache AV · v20260730165559-full.f96bc7eb