Reading values with different datatypes inside a string in javascript

Multi tool use
Assume i have a string
var str = " 1, 'hello' "
I'm trying to give a function the above values found in str
but as integer and string- not as one string-
for example myFunc(1,'hello')
how can i achieve that
i tried using eval(str)
,
but I'm getting invalid token ,
How can i solve this?
javascript string eval
add a comment |
Assume i have a string
var str = " 1, 'hello' "
I'm trying to give a function the above values found in str
but as integer and string- not as one string-
for example myFunc(1,'hello')
how can i achieve that
i tried using eval(str)
,
but I'm getting invalid token ,
How can i solve this?
javascript string eval
add a comment |
Assume i have a string
var str = " 1, 'hello' "
I'm trying to give a function the above values found in str
but as integer and string- not as one string-
for example myFunc(1,'hello')
how can i achieve that
i tried using eval(str)
,
but I'm getting invalid token ,
How can i solve this?
javascript string eval
Assume i have a string
var str = " 1, 'hello' "
I'm trying to give a function the above values found in str
but as integer and string- not as one string-
for example myFunc(1,'hello')
how can i achieve that
i tried using eval(str)
,
but I'm getting invalid token ,
How can i solve this?
javascript string eval
javascript string eval
asked Nov 16 '18 at 10:14


Osama Al ZahabiOsama Al Zahabi
147
147
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
The following should work with any number of arguments.
function foo(num, str) {
console.log(num, str);
}
const input = "1, 'hel,lo'";
const args = JSON.parse('[' + input.replace(/'/g, '"') + ']');
foo(...args);
but ill have to pass the arguments manually to the implementation of the function. isnt there another way to pass the parameters because the stringinput
may change thus the parameters should also be changed
– Osama Al Zahabi
Nov 16 '18 at 17:17
@OsamaAlZahabi You can pass the arguments asfoo(args[0], args[1])
as well. If this doesn't help, can you give some examples?
– Jeto
Nov 16 '18 at 17:29
@OsamaAlZahabi You can also define the function asfoo(...args)
and it'll receive the arguments as an array.
– Jeto
Nov 16 '18 at 17:49
i meant that the number of args can change as well thus parameters should be changed too
– Osama Al Zahabi
Nov 16 '18 at 17:49
Ohh That will work thanks alot !
– Osama Al Zahabi
Nov 16 '18 at 17:51
add a comment |
You've almost got the right idea with eval(str)
however, that isn't the thing you actually want to evaluate. If you do use eval(str)
, it is the same as saying eval(" 1, 'hello' ")
However, what you really want to do is:
eval("func(1, 'hello world'))
.
To do this you can do:
eval(func.name + '(' + str.trim() + ')');
Here we have:
func.name
: The name of the function to call. You can of course hard code this. (ie just write "func(" + ...)str.trim()
: The arguments you want to pass into the given function. Here I also used.trim()
to remove any additional whitespace around the string.
Take a look at the snippet below. Here I have basically written out the above line of code, however, I have used some intermediate variables to help spell out how exactly this works:
function func(myNum, myStr) {
console.log(myNum*2, myStr);
}
let str = " 1, 'hello, world'";
// Build the components for the eval:
let fncName = func.name;
let args = str.trim();
let fncStr = fncName + '(' + args + ')';
eval(fncStr);
Alternatively, if you only wish to pass in two arguments you can use .split(',')
on your string to split the string based on the comma character ,
.
Using split on " 1, 'hello' "
will give you an array such as this one a
:
let a = [" 1", "'hello'"];
Then cast your string to an integer and remove the additional quotes around your string by using .replace(/'/g, '');
(replace all '
quotes with nothing ''
):
let numb = +a[0].trim(); // Get the number (convert it to integer using +)
let str = a[1].trim().replace(/'/g, ''); // get the string remove whitespace and ' around it using trim() and replace()
Now you can call your function using these two variables:
func(numb, str);
function func(myNum, myStr) {
console.log('The number times 2 is:', myNum*2, "My string is:", myStr);
}
let arguments = " 1, 'hello' ";
let arr = arguments.split(',');
let numb = +arr[0].trim(); // Argument 1
let str = arr[1].trim().replace(/'/g, ''); // Argument 2
func(numb, str);
Thanks for your help! but i cant usesplit
because the string itself may contain a comma
– Osama Al Zahabi
Nov 16 '18 at 10:30
@OsamaAlZahabi Ah, I see. I've updated the top half of my answer to useeval()
as your original question did. This method works for multiple arguments and with commas within the string :)
– Nick Parsons
Nov 17 '18 at 4:01
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53335686%2freading-values-with-different-datatypes-inside-a-string-in-javascript%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
The following should work with any number of arguments.
function foo(num, str) {
console.log(num, str);
}
const input = "1, 'hel,lo'";
const args = JSON.parse('[' + input.replace(/'/g, '"') + ']');
foo(...args);
but ill have to pass the arguments manually to the implementation of the function. isnt there another way to pass the parameters because the stringinput
may change thus the parameters should also be changed
– Osama Al Zahabi
Nov 16 '18 at 17:17
@OsamaAlZahabi You can pass the arguments asfoo(args[0], args[1])
as well. If this doesn't help, can you give some examples?
– Jeto
Nov 16 '18 at 17:29
@OsamaAlZahabi You can also define the function asfoo(...args)
and it'll receive the arguments as an array.
– Jeto
Nov 16 '18 at 17:49
i meant that the number of args can change as well thus parameters should be changed too
– Osama Al Zahabi
Nov 16 '18 at 17:49
Ohh That will work thanks alot !
– Osama Al Zahabi
Nov 16 '18 at 17:51
add a comment |
The following should work with any number of arguments.
function foo(num, str) {
console.log(num, str);
}
const input = "1, 'hel,lo'";
const args = JSON.parse('[' + input.replace(/'/g, '"') + ']');
foo(...args);
but ill have to pass the arguments manually to the implementation of the function. isnt there another way to pass the parameters because the stringinput
may change thus the parameters should also be changed
– Osama Al Zahabi
Nov 16 '18 at 17:17
@OsamaAlZahabi You can pass the arguments asfoo(args[0], args[1])
as well. If this doesn't help, can you give some examples?
– Jeto
Nov 16 '18 at 17:29
@OsamaAlZahabi You can also define the function asfoo(...args)
and it'll receive the arguments as an array.
– Jeto
Nov 16 '18 at 17:49
i meant that the number of args can change as well thus parameters should be changed too
– Osama Al Zahabi
Nov 16 '18 at 17:49
Ohh That will work thanks alot !
– Osama Al Zahabi
Nov 16 '18 at 17:51
add a comment |
The following should work with any number of arguments.
function foo(num, str) {
console.log(num, str);
}
const input = "1, 'hel,lo'";
const args = JSON.parse('[' + input.replace(/'/g, '"') + ']');
foo(...args);
The following should work with any number of arguments.
function foo(num, str) {
console.log(num, str);
}
const input = "1, 'hel,lo'";
const args = JSON.parse('[' + input.replace(/'/g, '"') + ']');
foo(...args);
function foo(num, str) {
console.log(num, str);
}
const input = "1, 'hel,lo'";
const args = JSON.parse('[' + input.replace(/'/g, '"') + ']');
foo(...args);
function foo(num, str) {
console.log(num, str);
}
const input = "1, 'hel,lo'";
const args = JSON.parse('[' + input.replace(/'/g, '"') + ']');
foo(...args);
edited Nov 16 '18 at 10:49
answered Nov 16 '18 at 10:22


JetoJeto
5,22521018
5,22521018
but ill have to pass the arguments manually to the implementation of the function. isnt there another way to pass the parameters because the stringinput
may change thus the parameters should also be changed
– Osama Al Zahabi
Nov 16 '18 at 17:17
@OsamaAlZahabi You can pass the arguments asfoo(args[0], args[1])
as well. If this doesn't help, can you give some examples?
– Jeto
Nov 16 '18 at 17:29
@OsamaAlZahabi You can also define the function asfoo(...args)
and it'll receive the arguments as an array.
– Jeto
Nov 16 '18 at 17:49
i meant that the number of args can change as well thus parameters should be changed too
– Osama Al Zahabi
Nov 16 '18 at 17:49
Ohh That will work thanks alot !
– Osama Al Zahabi
Nov 16 '18 at 17:51
add a comment |
but ill have to pass the arguments manually to the implementation of the function. isnt there another way to pass the parameters because the stringinput
may change thus the parameters should also be changed
– Osama Al Zahabi
Nov 16 '18 at 17:17
@OsamaAlZahabi You can pass the arguments asfoo(args[0], args[1])
as well. If this doesn't help, can you give some examples?
– Jeto
Nov 16 '18 at 17:29
@OsamaAlZahabi You can also define the function asfoo(...args)
and it'll receive the arguments as an array.
– Jeto
Nov 16 '18 at 17:49
i meant that the number of args can change as well thus parameters should be changed too
– Osama Al Zahabi
Nov 16 '18 at 17:49
Ohh That will work thanks alot !
– Osama Al Zahabi
Nov 16 '18 at 17:51
but ill have to pass the arguments manually to the implementation of the function. isnt there another way to pass the parameters because the string
input
may change thus the parameters should also be changed– Osama Al Zahabi
Nov 16 '18 at 17:17
but ill have to pass the arguments manually to the implementation of the function. isnt there another way to pass the parameters because the string
input
may change thus the parameters should also be changed– Osama Al Zahabi
Nov 16 '18 at 17:17
@OsamaAlZahabi You can pass the arguments as
foo(args[0], args[1])
as well. If this doesn't help, can you give some examples?– Jeto
Nov 16 '18 at 17:29
@OsamaAlZahabi You can pass the arguments as
foo(args[0], args[1])
as well. If this doesn't help, can you give some examples?– Jeto
Nov 16 '18 at 17:29
@OsamaAlZahabi You can also define the function as
foo(...args)
and it'll receive the arguments as an array.– Jeto
Nov 16 '18 at 17:49
@OsamaAlZahabi You can also define the function as
foo(...args)
and it'll receive the arguments as an array.– Jeto
Nov 16 '18 at 17:49
i meant that the number of args can change as well thus parameters should be changed too
– Osama Al Zahabi
Nov 16 '18 at 17:49
i meant that the number of args can change as well thus parameters should be changed too
– Osama Al Zahabi
Nov 16 '18 at 17:49
Ohh That will work thanks alot !
– Osama Al Zahabi
Nov 16 '18 at 17:51
Ohh That will work thanks alot !
– Osama Al Zahabi
Nov 16 '18 at 17:51
add a comment |
You've almost got the right idea with eval(str)
however, that isn't the thing you actually want to evaluate. If you do use eval(str)
, it is the same as saying eval(" 1, 'hello' ")
However, what you really want to do is:
eval("func(1, 'hello world'))
.
To do this you can do:
eval(func.name + '(' + str.trim() + ')');
Here we have:
func.name
: The name of the function to call. You can of course hard code this. (ie just write "func(" + ...)str.trim()
: The arguments you want to pass into the given function. Here I also used.trim()
to remove any additional whitespace around the string.
Take a look at the snippet below. Here I have basically written out the above line of code, however, I have used some intermediate variables to help spell out how exactly this works:
function func(myNum, myStr) {
console.log(myNum*2, myStr);
}
let str = " 1, 'hello, world'";
// Build the components for the eval:
let fncName = func.name;
let args = str.trim();
let fncStr = fncName + '(' + args + ')';
eval(fncStr);
Alternatively, if you only wish to pass in two arguments you can use .split(',')
on your string to split the string based on the comma character ,
.
Using split on " 1, 'hello' "
will give you an array such as this one a
:
let a = [" 1", "'hello'"];
Then cast your string to an integer and remove the additional quotes around your string by using .replace(/'/g, '');
(replace all '
quotes with nothing ''
):
let numb = +a[0].trim(); // Get the number (convert it to integer using +)
let str = a[1].trim().replace(/'/g, ''); // get the string remove whitespace and ' around it using trim() and replace()
Now you can call your function using these two variables:
func(numb, str);
function func(myNum, myStr) {
console.log('The number times 2 is:', myNum*2, "My string is:", myStr);
}
let arguments = " 1, 'hello' ";
let arr = arguments.split(',');
let numb = +arr[0].trim(); // Argument 1
let str = arr[1].trim().replace(/'/g, ''); // Argument 2
func(numb, str);
Thanks for your help! but i cant usesplit
because the string itself may contain a comma
– Osama Al Zahabi
Nov 16 '18 at 10:30
@OsamaAlZahabi Ah, I see. I've updated the top half of my answer to useeval()
as your original question did. This method works for multiple arguments and with commas within the string :)
– Nick Parsons
Nov 17 '18 at 4:01
add a comment |
You've almost got the right idea with eval(str)
however, that isn't the thing you actually want to evaluate. If you do use eval(str)
, it is the same as saying eval(" 1, 'hello' ")
However, what you really want to do is:
eval("func(1, 'hello world'))
.
To do this you can do:
eval(func.name + '(' + str.trim() + ')');
Here we have:
func.name
: The name of the function to call. You can of course hard code this. (ie just write "func(" + ...)str.trim()
: The arguments you want to pass into the given function. Here I also used.trim()
to remove any additional whitespace around the string.
Take a look at the snippet below. Here I have basically written out the above line of code, however, I have used some intermediate variables to help spell out how exactly this works:
function func(myNum, myStr) {
console.log(myNum*2, myStr);
}
let str = " 1, 'hello, world'";
// Build the components for the eval:
let fncName = func.name;
let args = str.trim();
let fncStr = fncName + '(' + args + ')';
eval(fncStr);
Alternatively, if you only wish to pass in two arguments you can use .split(',')
on your string to split the string based on the comma character ,
.
Using split on " 1, 'hello' "
will give you an array such as this one a
:
let a = [" 1", "'hello'"];
Then cast your string to an integer and remove the additional quotes around your string by using .replace(/'/g, '');
(replace all '
quotes with nothing ''
):
let numb = +a[0].trim(); // Get the number (convert it to integer using +)
let str = a[1].trim().replace(/'/g, ''); // get the string remove whitespace and ' around it using trim() and replace()
Now you can call your function using these two variables:
func(numb, str);
function func(myNum, myStr) {
console.log('The number times 2 is:', myNum*2, "My string is:", myStr);
}
let arguments = " 1, 'hello' ";
let arr = arguments.split(',');
let numb = +arr[0].trim(); // Argument 1
let str = arr[1].trim().replace(/'/g, ''); // Argument 2
func(numb, str);
Thanks for your help! but i cant usesplit
because the string itself may contain a comma
– Osama Al Zahabi
Nov 16 '18 at 10:30
@OsamaAlZahabi Ah, I see. I've updated the top half of my answer to useeval()
as your original question did. This method works for multiple arguments and with commas within the string :)
– Nick Parsons
Nov 17 '18 at 4:01
add a comment |
You've almost got the right idea with eval(str)
however, that isn't the thing you actually want to evaluate. If you do use eval(str)
, it is the same as saying eval(" 1, 'hello' ")
However, what you really want to do is:
eval("func(1, 'hello world'))
.
To do this you can do:
eval(func.name + '(' + str.trim() + ')');
Here we have:
func.name
: The name of the function to call. You can of course hard code this. (ie just write "func(" + ...)str.trim()
: The arguments you want to pass into the given function. Here I also used.trim()
to remove any additional whitespace around the string.
Take a look at the snippet below. Here I have basically written out the above line of code, however, I have used some intermediate variables to help spell out how exactly this works:
function func(myNum, myStr) {
console.log(myNum*2, myStr);
}
let str = " 1, 'hello, world'";
// Build the components for the eval:
let fncName = func.name;
let args = str.trim();
let fncStr = fncName + '(' + args + ')';
eval(fncStr);
Alternatively, if you only wish to pass in two arguments you can use .split(',')
on your string to split the string based on the comma character ,
.
Using split on " 1, 'hello' "
will give you an array such as this one a
:
let a = [" 1", "'hello'"];
Then cast your string to an integer and remove the additional quotes around your string by using .replace(/'/g, '');
(replace all '
quotes with nothing ''
):
let numb = +a[0].trim(); // Get the number (convert it to integer using +)
let str = a[1].trim().replace(/'/g, ''); // get the string remove whitespace and ' around it using trim() and replace()
Now you can call your function using these two variables:
func(numb, str);
function func(myNum, myStr) {
console.log('The number times 2 is:', myNum*2, "My string is:", myStr);
}
let arguments = " 1, 'hello' ";
let arr = arguments.split(',');
let numb = +arr[0].trim(); // Argument 1
let str = arr[1].trim().replace(/'/g, ''); // Argument 2
func(numb, str);
You've almost got the right idea with eval(str)
however, that isn't the thing you actually want to evaluate. If you do use eval(str)
, it is the same as saying eval(" 1, 'hello' ")
However, what you really want to do is:
eval("func(1, 'hello world'))
.
To do this you can do:
eval(func.name + '(' + str.trim() + ')');
Here we have:
func.name
: The name of the function to call. You can of course hard code this. (ie just write "func(" + ...)str.trim()
: The arguments you want to pass into the given function. Here I also used.trim()
to remove any additional whitespace around the string.
Take a look at the snippet below. Here I have basically written out the above line of code, however, I have used some intermediate variables to help spell out how exactly this works:
function func(myNum, myStr) {
console.log(myNum*2, myStr);
}
let str = " 1, 'hello, world'";
// Build the components for the eval:
let fncName = func.name;
let args = str.trim();
let fncStr = fncName + '(' + args + ')';
eval(fncStr);
Alternatively, if you only wish to pass in two arguments you can use .split(',')
on your string to split the string based on the comma character ,
.
Using split on " 1, 'hello' "
will give you an array such as this one a
:
let a = [" 1", "'hello'"];
Then cast your string to an integer and remove the additional quotes around your string by using .replace(/'/g, '');
(replace all '
quotes with nothing ''
):
let numb = +a[0].trim(); // Get the number (convert it to integer using +)
let str = a[1].trim().replace(/'/g, ''); // get the string remove whitespace and ' around it using trim() and replace()
Now you can call your function using these two variables:
func(numb, str);
function func(myNum, myStr) {
console.log('The number times 2 is:', myNum*2, "My string is:", myStr);
}
let arguments = " 1, 'hello' ";
let arr = arguments.split(',');
let numb = +arr[0].trim(); // Argument 1
let str = arr[1].trim().replace(/'/g, ''); // Argument 2
func(numb, str);
function func(myNum, myStr) {
console.log(myNum*2, myStr);
}
let str = " 1, 'hello, world'";
// Build the components for the eval:
let fncName = func.name;
let args = str.trim();
let fncStr = fncName + '(' + args + ')';
eval(fncStr);
function func(myNum, myStr) {
console.log(myNum*2, myStr);
}
let str = " 1, 'hello, world'";
// Build the components for the eval:
let fncName = func.name;
let args = str.trim();
let fncStr = fncName + '(' + args + ')';
eval(fncStr);
function func(myNum, myStr) {
console.log('The number times 2 is:', myNum*2, "My string is:", myStr);
}
let arguments = " 1, 'hello' ";
let arr = arguments.split(',');
let numb = +arr[0].trim(); // Argument 1
let str = arr[1].trim().replace(/'/g, ''); // Argument 2
func(numb, str);
function func(myNum, myStr) {
console.log('The number times 2 is:', myNum*2, "My string is:", myStr);
}
let arguments = " 1, 'hello' ";
let arr = arguments.split(',');
let numb = +arr[0].trim(); // Argument 1
let str = arr[1].trim().replace(/'/g, ''); // Argument 2
func(numb, str);
edited Nov 17 '18 at 4:00
answered Nov 16 '18 at 10:25
Nick ParsonsNick Parsons
6,0432722
6,0432722
Thanks for your help! but i cant usesplit
because the string itself may contain a comma
– Osama Al Zahabi
Nov 16 '18 at 10:30
@OsamaAlZahabi Ah, I see. I've updated the top half of my answer to useeval()
as your original question did. This method works for multiple arguments and with commas within the string :)
– Nick Parsons
Nov 17 '18 at 4:01
add a comment |
Thanks for your help! but i cant usesplit
because the string itself may contain a comma
– Osama Al Zahabi
Nov 16 '18 at 10:30
@OsamaAlZahabi Ah, I see. I've updated the top half of my answer to useeval()
as your original question did. This method works for multiple arguments and with commas within the string :)
– Nick Parsons
Nov 17 '18 at 4:01
Thanks for your help! but i cant use
split
because the string itself may contain a comma– Osama Al Zahabi
Nov 16 '18 at 10:30
Thanks for your help! but i cant use
split
because the string itself may contain a comma– Osama Al Zahabi
Nov 16 '18 at 10:30
@OsamaAlZahabi Ah, I see. I've updated the top half of my answer to use
eval()
as your original question did. This method works for multiple arguments and with commas within the string :)– Nick Parsons
Nov 17 '18 at 4:01
@OsamaAlZahabi Ah, I see. I've updated the top half of my answer to use
eval()
as your original question did. This method works for multiple arguments and with commas within the string :)– Nick Parsons
Nov 17 '18 at 4:01
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53335686%2freading-values-with-different-datatypes-inside-a-string-in-javascript%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
JL QJ3atgwAkvcq1LN24P,4Xyr5,Jq8kjWjOCZj1pO0ovVT