Regular expression in node js - regex

I'm trying to strip out facebook.com from a URL. Can someone please help me with the RegEx to do this in NodeJs and express?
"http://www.facebook.com/RalphLauren"
I need to be left with "RalphLauren" as a string.
Thanks in advance!!!
Update:
This did the trick for what I wanted:
var url = 'http://www.facebook.com/RalphLauren';
var name = url.substr(url.lastIndexOf('/')+1);

No need for a regular expression. Use the parse method of the URL module and extract the path.
var parts = url.parse("http://www.facebook.com/RalphLauren");
console.log(parts.path); // '/RalphLauren'

Try
var newString = "http://www.facebook.com/RalphLauren".replace( /http:\/\/(www.)?facebook.com\/(.+)$/, "$2" );

You can use the replace method on strings
var url = "http://www.facebook.com/RalphLauren";
url.replace(/http:\/\/.*\.facebook\.com/, '');
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

Related

remove "?show=false" using regex [duplicate]

I looking for regular expression to use in my javascript code, which give me last part of url without parameters if they exists - here is example - with and without parameters:
https://scontent-fra3-1.xx.fbcdn.net/v/t1.0-9/14238253_132683573850463_7287992614234853254_n.jpg?oh=fdbf6800f33876a86ed17835cfce8e3b&oe=599548AC
https://scontent-fra3-1.xx.fbcdn.net/v/t1.0-9/14238253_132683573850463_7287992614234853254_n.jpg
In both cases as result I want to get:
14238253_132683573850463_7287992614234853254_n.jpg
Here is this regexp
.*\/([^?]+)
and JS code:
let lastUrlPart = /.*\/([^?]+)/.exec(url)[1];
let lastUrlPart = url => /.*\/([^?]+)/.exec(url)[1];
// TEST
let t1 = "https://scontent-fra3-1.xx.fbcdn.net/v/t1.0-9/14238253_132683573850463_7287992614234853254_n.jpg?oh=fdbf6800f33876a86ed17835cfce8e3b&oe=599548AC"
let t2 = "https://scontent-fra3-1.xx.fbcdn.net/v/t1.0-9/14238253_132683573850463_7287992614234853254_n.jpg"
console.log(lastUrlPart(t1));
console.log(lastUrlPart(t2));
May be there are better alternatives?
You could always try doing it without regex. Split the URL by "/" and then parse out the last part of the URL.
var urlPart = url.split("/");
var img = urlPart[urlPart.length-1].split("?")[0];
That should get everything after the last "/" and before the first "?".

How to replace backslash in AS3 Flash?

I'm trying to replace the backslashes of the url/path to get the file name of the swf:
var path:String = "C:\Test\myswf.swf"
var swfURL:String = path.replace(/\\/gi, "/");
var swfFileName:String = path.slice(path.lastIndexOf("/")+1, path.length).replace(".swf", "");
But it doesn't works. The response is: 'C:Testmyswf.swf'. It's doesn't replace the string path. How can i do it?
I think you might need to escape the backslashes within your URL string:
var path:String = "C:\\Test\\myswf.swf"
Try this regex:
\\([^\\.]+)\.
Then get $1
I've managed to solve this problem by "performing crazy" with the code below:
var reg:RegExp = new RegExp("\\d"+stage.loaderInfo.url, "gi");
var idswf:String = reg.toString().replace(/\\/g, "/");
idswf = idswf.split("/")[idswf.split("/").length-2].replace(".swf", "");
It may not be the best solution, but it worked well for me and can work for other people...

Coming up with a regex solution

I have a page that has content on it that I need to try extract a number from with a regex.
Here is an example of the format of the page
Text here
<script type="text/javascript">
var USER_ACCOUNT_NUMBER = "12345";
var USER_FULL_NAME = "";
var IS_INTERNATIONAL_USER = false;
</script>
Text here
From this content I need to get the value of user_account_number which would be 12345.
I tried something like this USER_ACCOUNT_NUMBER([\s\S])=([\s\S])""; which finds the part i need but not sure how to only get whats in those quotes.
I assume, the number of spaces around = isn't fixed. Hence, you can use this regex:
USER_ACCOUNT_NUMBER\s*=\s*"(.*)"
Online test
/USER_ACCOUNT_NUMBER = "(.*)";/
Returns: 12345
http://regex101.com/r/dW2hK7
i would try something like:
USER_ACCOUNT_NUMBER = "[1-9]*"

Can a sizzle selector evaluate a regular expression?

I need to select links with a specific format of URLs. Can I use sizzle to evaluate a link's href attribute against a regular expression?
For example, can I do something like this:
var arrayOfLinks = Sizzle('a[HREF=[0-9]+$]');
to create an array of all links on the page whose URL ends in a number?
Give this a try. I've attempted to convert the jQuery regex selector that Kobi linked to into a Sizzle selector extension. Seems to work, but I haven't put it through a lot of testing.
Sizzle.selectors.filters.regex = function(elem, i, match){
var matchParams = match[3].split(',', 2);
var attr = matchParams[0];
var pattern = matchParams[1];
var regex = new RegExp(pattern.replace(/^\s+|\s+$/g,''), 'ig');
return regex.test(elem.getAttribute(attr));
};
In this case, your example would be written as:
var arrayOfLinks = Sizzle('a:regex(href,[0-9]+$)');

How to use regular expression in WatiN

I'm working on WatiN automation tool. I'm having problem in regular expression. I've situation where i have to enter some text and click on a button in the popup window. I'm using AttachToIE method and URL attribute("http://192.168.25.10:215/admin/SelectUsers.aspx?Type=FeedbackID=ef5ad7ef5490-4656-9669-32464aeba7cd") of the popup to attach to the popup.
The problem is each time the popup appears the ID value in the URL changes. So i'm not able to access the popup. can anyone plz help with this by giving me Regular Expression for the changing value of ID in the below URL
("http://192.168.25.10:215/admin/SelectUsers.aspx?Type=FeedbackID=ef5ad7ef5490-4656-9669-32464aeba7cd")
thanking you
It appears that you have a URL with 2 query string parameters Type and ID and your pattern is:
"http://192.168.25.10:215/admin/SelectUsers.aspx?Type=Feedback&ID={some id}"
You can use the Find.ByUrl() attribute constraint method and pass it to AttachToIE() as shown below with the regex for matching that pattern.
string url = "http://192.168.25.10:215/admin/SelectUsers.aspx?Type=Feedback&ID="
Regex regex = new Regex(url + "[a-z0-9]+", RegexOptions.IgnoreCase);
IE ie = IE.AttachToIE(Find.ByUrl(regex));
string baseUrl ="http://192.168.25.10:215/admin/SelectUsers.aspx?Type=FeedbackID="
Regex urlIE= new Regex(baseUrl + "[\\wd]+", RegexOptions.IgnoreCase);
IE ie = IE.AttachToIE(Find.ByUrl(urlIE);
I'm not familiar with WatiN but it looks like it's runs on .Net so perhaps this might help?
var desiredId = "000000000000-0000-0000-000000000000";
var url = "http://192.168.25.10:215/admin/SelectUsers.aspx?Type=FeedbackID=ef5ad7ef5490-4656-9669-32464aeba7cd&someMoreStuff";
var pattern = #"(?i)(?<=FeedBackId=)[-a-z0-9]+";
var result = Regex.Replace(url, pattern, desiredId);
Console.WriteLine(result);
//Output: http://192.168.25.10:215/admin/SelectUsers.aspx?Type=FeedbackID=000000000000-0000-0000-000000000000&someMoreStuff
The following pattern should have the same affect but is more defensive. It should only match stuff in the query string, it requires the id to be 35 characters and won't match similar parameter names like "PreviousFeedBackId".
var pattern = #"(?i)(?<=\?.*\bFeedBackId=)[-a-z0-9]{35,35}\b";
If you just want to extract the id:
var id = Regex.Match(url, pattern).Value;
Console.WriteLine(id);
//output: ef5ad7ef5490-4656-9669-32464aeba7cd
WatiN has a feature where in we can use the url by neglecting the query string. Below is the code which is working fine for me.
string baseUrl = "http://192.168.25.10:215/admin/SelectUsers.aspx";
IE ie = IE.AttachToIE(Find.ByUrl(baseUrl,true));