JavaScript: Issue with single quotes and URL - javascript

I have the following JS coding:
var myVariable = "material'"; //<- there is a single quote before the double quote!
var object = {
path: "/Data(Material='" + myVariable + "')"
}
object.path is building a URL for a service call and will result in this:
https://myurl/Data(Material='material'')
Of course this service call will fail because of the two single quotes.
What else can I do?

I think this should take care of it. Just replace all single quotes in your variable for two single quotes:
var object = {
path: "/Data(Material='" + myVariable.replace(/'/g, "''") + "')"
}

Related

Add double quotes to string which is stored in variable

I have variable which i am getting from DB string url, But the url does not have quotes to url i need to add the quotes to it below is my code.
var audioUrl
url is having string like http://xxxxx/xxx/xx-xx-123.m4a without double quotes
audioUrl= (data.url)
i need convert data.url value to "http://xxxxx/xxx/xx-xx-123.m4a"
Circle Jplayer
var audio="http://xxxxx/xxx/xx-xx-123.m4a"
var myOtherOne = new CirclePlayer("#jquery_jplayer_2",
{
m4a: audio,
}
If possible, I'd use ES6 syntax for this:
`"${data.url}"`
var audioUrl = "\""+ data.url+ "\"";
Whatever your get audioUrl and you want to wrap it with ", you need to put them and escape inner ones with . Above will result in:
"http://xxxxx/xxx/xx-xx-123.m4a"
OR if you are using the single quotes then no need to use the escape character.
var audioUrl = '"'+ data.url+ '"';
This is the simplest way
var audioUrl = '"' + (data.url) + '"'
This is a problem that comes up all the time for me and it does get frustrating.
A simple solution is to create global variables and use them in your strings as needed like so:
var singleQuote = " ' ";
var doubleQuote = ' " ';
Hope this helps others.

Adding the single string quote for value inside variable using Javascript

I have a variable, before I use that variable,I need to add string quotes to the value/data which is inside the variable using JavaScript need help
//i am getting like this //
var variable=king;
//i want to convert it with single quote//
variable=variable;
but i need the data inside variable should be in a single quotation.
You can concatenate the variable with your quotes like :
function addQuotes(value){
var quotedVar = "\'" + value + "\'";
return quotedVar;
}
And use it like :
var king = addQuotes('king');
console.log will display :
'king'
Edit : you can try it in the chrome/firefox console, I did it and it works perfectly when copy/paste from here.
var x = 'abc';
var sData = "\'" + x +"\'";
// sData will print "'abc'"
var x = 'pqr';
var sData = "\'" + x +"\'";
// sData will print "'abc'"
1) You can use doublequotes
var variable = "'" + variable + "'";
2) ... or You can escape single quote symbol with backslash
var variable = '\'' + variable + '\'';

Javascript - combine variables to form path

I need to combine two variables and one static string to form a path to may image - see below. Please advise on how to correct the syntax:
var shortUrl = "http://www.art.com";
album_name = "art";
poster:""+shortUrl+""/""+album_name+"".jpg",
I am trying to get it to output:
http://www.art.com/art.jpg
You almost had it.
shortUrl + "/" + album_name + ".jpg";
You don't need to escape slashes when they are inside a string literal.
You should use var to prevent the variables from becoming global, assign the result to poster with an =, remove the opening "", and only use one " on either side of a string.
var shortUrl = "http://www.art.com";
var album_name = "art";
var poster = shortUrl +"/" + album_name + ".jpg";
console.log(poster);

Replace ID in a URL between two markers

I have a url which looks like this:
I want to replace: 1034749-184e-3467-87e0-d7546df59896 with another ID, is there any regex or similar replace method which will allow me to replace the ID using JavaScript between the 'image/' and '?' characters?
You could make this approximation expression:
/[0-9a-z]+(?:-[0-9a-z]+){4}/i
Match a bunch of hexadecimals, followed by 4 sections, each starting with a dash followed by a bunch of hexadecimals.
> var s = 'http://url/images/1034749-184e-3467-87e0-d7546df59896?w=600&r=22036';
> console.log(s.replace(/[0-9a-z]+(?:-[0-9a-z]+){4}/i, 'something-else'));
http://url/images/something-else?w=600&r=22036
/images\/[^?]+/ would match, but it would replace images/ as well.
Fortunately you can pass a callback to .replace:
url.replace(/(images\/)[^?]+/, function($match, $1) {
// results in "images/<some-ID>"
return $1 + theNewId;
});
If you have a reference to the DOM element anyway, you can also just replace the last step of the path:
element.pathname =
element.pathname.substring(0, element.pathname.lastIndexOf('/') + 1) + newId;
Yes, just do this:
var url = document.getElementById("yoururlid").src;
url = url.split("/");
var newUrl = url[0] + url[1] + url[2] + url[3] + newURLID;
Why not just do this:
document.getElementById("yoururlid").src="http://url/images/" + newId + "?w=600&r=22036";

Put quotes around a variable string in JavaScript

I have a JavaScript variable:
var text = "http://example.com"
Text can be multiple links. How can I put '' around the variable string?
I want the strings to, for example, look like this:
"'http://example.com'"
var text = "\"http://example.com\"";
Whatever your text, to wrap it with ", you need to put them and escape inner ones with \. Above will result in:
"http://example.com"
var text = "http://example.com";
text = "'"+text+"'";
Would attach the single quotes (') to the front and the back of the string.
I think, the best and easy way for you, to put value inside quotes is:
JSON.stringify(variable or value)
You can add these single quotes with template literals:
var text = "http://example.com"
var quoteText = `'${text}'`
console.log(quoteText)
Docs are here. Browsers that support template literals listed here.
Try:
var text = "'" + "http://example.com" + "'";
To represent the text below in JavaScript:
"'http://example.com'"
Use:
"\"'http://example.com'\""
Or:
'"\'http://example.com\'"'
Note that: We always need to escape the quote that we are surrounding the string with using \
JS Fiddle: http://jsfiddle.net/efcwG/
General Pointers:
You can use quotes inside a string, as long as they don't match the
quotes surrounding the string:
Example
var answer="It's alright";
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';
Or you can put quotes inside a string by using the \ escape
character:
Example
var answer='It\'s alright';
var answer="He is called \"Johnny\"";
Or you can use a combination of both as shown on top.
http://www.w3schools.com/js/js_obj_string.asp
let's think urls = "http://example1.com http://example2.com"
function somefunction(urls){
var urlarray = urls.split(" ");
var text = "\"'" + urlarray[0] + "'\"";
}
output will be text = "'http://example1.com'"
In case of array like
result = [ '2015', '2014', '2013', '2011' ],
it gets tricky if you are using escape sequence like:
result = [ \'2015\', \'2014\', \'2013\', \'2011\' ].
Instead, good way to do it is to wrap the array with single quotes as follows:
result = "'"+result+"'";
You can escape " with \
var text="\"word\"";
http://jsfiddle.net/beKpE/
Lets assume you have a bunch of urls separated by spaces. In this case, you could do this:
function quote(text) {
var urls = text.split(/ /)
for (var i = 0; i < urls.length; i++) urls[i] = "'" + urls[i] + "'"
return urls.join(" ")
}
This function takes a string like "http://example.com http://blarg.test" and returns a string like "'http://example.com' 'http://blarg.test'".
It works very simply: it takes your string of urls, splits it by spaces, surrounds each resulting url with quotes and finally combines all of them back with spaces.
var text = "\"http://www.example1.com\"; \"http://www.example2.com\"";
Using escape sequence of " (quote), you can achieve this
You can place singe quote (') inside double quotes without any issues
Like this
var text = "'http://www.ex.com';'http://www.ex2.com'"
Another easy way to wrap a string is to extend the Javascript String prototype:
String.prototype.quote = function() { return "\"" + this + "\""; };
Use it like this:
var s = "abc";
console.log( "unwrapped: " + s + ", wrapped: " + s.quote() );
and you will see:
unwrapped: abc, wrapped: "abc"
This can be one of several solutions:
var text = "http://example.com";
JSON.stringify(text).replace('\"', '\"\'').replace(/.$/, '\'"')

Categories

Resources