javascript/jquery add trailing slash to url (if not present)
I added to the regex solution to accommodate query strings:
http://jsfiddle.net/hRheW/8/
url.replace(/\/?(\?|#|$)/, '/$1')
url += url.endsWith("/") ? "" : "/"
var lastChar = url.substr(-1); // Selects the last character
if (lastChar != '/') { // If the last character is not a slash
url = url + '/'; // Append a slash to it.
}
The temporary variable name can be omitted, and directly embedded in the assertion:
if (url.substr(-1) != '/') url += '/';
Since the goal is changing the url with a one-liner, the following solution can also be used:
url = url.replace(/\/?$/, '/');
- If the trailing slash exists, it is replaced with
/
. - If the trailing slash does not exist, a
/
is appended to the end (to be exact: The trailing anchor is replaced with/
).