webForumDet fria alternativet

RegExp pattern i formulärfält

JavaScript

2 svar · 265 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Frågan#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?

Medlem sedan apr. 20012 427 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.

Medlem sedan aug. 20039 340 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.

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