2011年9月6日 星期二

Regular Expression - Javascript

Javascript:

Let's say wanna get "tasty" and "Yum-Mie" when search "yummy"

var passage = '#yummy=tasty=Yum-Mie#zebra=something=C-Bra#';
var regex = new RegExp('#yummy=(.*)=(.*)#');
var matchResult = passage.match(regex);

this will give longest match, i.e.
matchResult[0]: #yummy=tasty=Yum-Mie#zebra=something=C-Bra#
matchResult[1]: tasty,blahblah=Yum-Mie#zebra=something=C-Bra
matchResult[2]: C-Bra

To get what we want, should use the following instead:
var regex = new RegExp('#yummy=(.*?)=(.*?)#');


this will give
matchResult[0]: #yummy=tasty=Yum-Mie#
matchResult[1]: tasty
matchResult[2]: Yum-Mie

For case insensitive match, use modifier as the 2nd parameter:
var regex = new RegExp('#yummy=(.*?)=(.*?)#', 'i');

沒有留言:

張貼留言