Skyrim
Skyrim

Reputation: 162

Select 2 characters after a particular substring in javascript

We have a string ,

var str = "Name=XYZ;State=TX;Phone=9422323233";

Here in the above string we need to fetch only the State value i.e TX. That is 2 characters after the substring State=

Can anyone help me implement it in javascript.

Upvotes: 1

Views: 1146

Answers (5)

RobG
RobG

Reputation: 147363

There are any number of ways to get what you're after:

var str = "Name=XYZ;State=TX;Phone=9422323233"

Using match:

var match = str.match(/State=.{2}/);
var state = match? match[0].substring(6) : '';
console.log(state);

Using replace:

var state = str.replace(/^.*State=/,'').substring(0,2);
console.log(state);

Using split:

console.log(str.split('State=')[1].substring(0,2));

There are many other ways, including constructing an object that has name/value pairs:

var obj = {};
var b = str.split(';');
var c;

for (var i=b.length; i; ) {
  c = b[--i].split('=');
  obj[c[0]] = c[1];
}

console.log(obj.State);

Take your pick.

Upvotes: 0

jcbermu
jcbermu

Reputation: 571

Check this:

var str1 = "Name=XYZ;State=TX;Phone=9422323233";
var n = str1.search("State");
n=n+6;
var res = str1.substr(n, 2);

The result is in the variable res, no matter where State is in the original string.

Upvotes: 0

Arunprasanth K V
Arunprasanth K V

Reputation: 21921

indexOf returns the position of the string in the other string.

Using this index you can find the next two characters

javascript something like

 var n = str.indexOf("State=");

then use slice method

like

var res = str.slice(n,n+2);

another method is :

use split function

 var newstring=str.split("State=");

then

var result=newstring.substr(0, 2);

Upvotes: 0

Md Ashaduzzaman
Md Ashaduzzaman

Reputation: 4038

.split() the string into array and then find the index of the array element having State string. Using that index get to that element and again .split() it and get the result. Try this way,

var str = "Name=XYZ;State=TX;Phone=9422323233";

var strArr = str.split(';');

var index = 0;

for(var i = 0; i < strArr.length; i++){
    if(strArr[i].match("State")){
        index = i;
    }
}

console.log(strArr[index].split('=')[1]);

jsFiddle

Upvotes: 1

m0bi5
m0bi5

Reputation: 9452

I guess the easiest way out is by slicing and splitting

var str = "Name=XYZ;State=TX;Phone=9422323233";
var findme = str.split(';')[1];
var last2 = findme.slice(-2);
alert(last2);

Need more help? Let me know

Upvotes: 0

Related Questions