Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #21591
| Message-ID | <2009598.r5QypLNUnr@PointedEars.de> (permalink) |
|---|---|
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
| Organization | PointedEars Software (PES) |
| Date | 2013-10-11 01:06 +0200 |
| Subject | Re: regular expression |
| Newsgroups | comp.lang.javascript |
| References | <l36qvt$6rq$1@dont-email.me> <1692823.iOv17HgRNK@PointedEars.de> <0.59968aeff2274c0aa6ab.20131010213157BST.8738o827gi.fsf@bsb.me.uk> <4522206.f2d4svmm8S@PointedEars.de> <0.db90040c6be3639c247a.20131010235624BST.87r4bszqef.fsf@bsb.me.uk> |
Ben Bacarisse wrote: > Thomas 'PointedEars' Lahn <PointedEars@web.de> writes: >> Ben Bacarisse wrote: >>> Thomas 'PointedEars' Lahn <PointedEars@web.de> writes: >>>> Tony Johansson wrote: >>>>> I want to filter this expression >>>>> http://localhost:49507/slutProjekt/img/TwinBagel.jpg >>> <snip> >>>>> by using regular expression so that I only want the string that starts >>>>> after the last / and end before the dot. >>> <snip> >>> >>>> var s = elmnt.src.replace(/^.*\/([^.]+).*/, '$1'); >>>> >>>> Better: >>>> >>>> var m = (elmnt.src.match(/([^.\/]+)(?:\..*?)?$/) || [])[1]; >>> >>> Not if there is an earlier '.' in the string. >> >> It was not intended as a general solution. > > Oh, OK. That's odd, but it's yours to define "better" as a less general > solution. Using String.prototype.match() is better than String.prototype.replace() here because it is the *direct* solution to the problem of extracting a substring by using pattern matching. >>> I think your first RE will do just as well here, though the trailing .* >>> is no longer needed: >>> >>> var m = (elmnt.src.match(/^.*\/([^.]+)/) || [])[1]; >> >> This is simpler and more general, but less efficient. > > That's interesting. What makes it less efficient? For a start, it has to match almost the entire input when only the last fragment of it is needed. -- PointedEars Twitter: @PointedEars2 Please do not Cc: me. / Bitte keine Kopien per E-Mail.
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
regular expression "Tony Johansson" <johansson.andersson@telia.com> - 2013-10-10 20:17 +0200
Re: regular expression "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-10-10 20:29 +0200
Re: regular expression Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-10-10 21:33 +0200
Re: regular expression Ben Bacarisse <ben.usenet@bsb.me.uk> - 2013-10-10 21:31 +0100
Re: regular expression Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-10-10 22:57 +0200
Re: regular expression Ben Bacarisse <ben.usenet@bsb.me.uk> - 2013-10-10 23:56 +0100
Re: regular expression Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-10-11 01:06 +0200
Re: regular expression Ben Bacarisse <ben.usenet@bsb.me.uk> - 2013-10-11 01:21 +0100
Re: regular expression RobG <rgqld@iinet.net.au> - 2013-10-10 18:48 -0700
Re: regular expression Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-10-11 11:42 +0200
Re: regular expression dhtml <dhtmlkitchen@gmail.com> - 2013-10-16 10:19 -0700
csiph-web