I have a string which contains some pattern of text, and I need to find that pattern.
For Example:
var texttochange = ' [variable field="##Menu.name##" /]<br> [img value='##Menu.image##' width='200' height='200' borderthickness='0' keepaspect='0' bordercolor='#' alttext='' borderstyle='solid'][/img]<br> [variable field="##Menu.description##" /]<br> [variable field="##Menu.cost##" /]<br>';And I wrote the below regex to find this pattern##sometext.sometext##
var regexp = /##\S+.\S+##/gi;var matchesfound = regexp.exec(texttochange);According to my requirement I need all the fields ie["##Menu.name##"],["##Menu.image##"],["##Menu.description##"],["##Menu.cost##"]But in thevar matchesfound, I am only getting["##Menu.name##"]
2 Answers2
Try this:
var str = ' [variable field="##Menu.name##" /]<br> [img value="##Menu.image##" width="200" height="200" borderthickness="0" keepaspect="0" bordercolor="#" alttext="" borderstyle="solid"][/img]<br> [variable field="##Menu.description##" /]<br> [variable field="##Menu.cost##" /]<br>';var regex = /##\S+.\S+##/gi, result, indices = [];while ( (result = regex.exec(str)) ) { indices.push(result.toString());}console.log(indices); Sign up to request clarification or add additional context in comments.
2 Comments
Furquan Khan
+1 It worked, but you are pushing result.index in the indices, whereas i need the value... Anyways.. Thankz
Milind Anantwar
@FurquanKhan: use
result/result.toString()var texttochange = '[variable field="##Menu.name##" /]<br>[img value="##Menu.image##" width="200" height="200" borderthickness="0" keepaspect="0" bordercolor="#" alttext="" borderstyle="solid"][/img]<br>[variable field="##Menu.description##" /]<br>[variable field="##Menu.cost##" /]<br>'var regexp = /##\S+.\S+##/gi;texttochange.match(regexp)["##Menu.name##", "##Menu.image##", "##Menu.description##", "##Menu.cost##"]Comments
Explore related questions
See similar questions with these tags.
