2015-01-20 6 views
1

У меня есть следующая строка теста, мне нужно заменить id="XXX" и widgetid="XXX" на случайное число.регулярное выражение для нахождения id

var test = '<div id="1566" widgetid="1566"></div><div id="1567" widgetid="1568"></div>'; 

Не могли бы вы предложить мне регулярное выражение?

+5

Почему вы делаете это с помощью регулярных выражений и не используете DOM для его анализа как html? –

+0

Мне нужно это, чтобы создать дерево html случайных виджетов в додзё. – GibboK

+0

[Не использовать regext для анализа HTML. Просто нет, или Залго будет есть вас.] (Http://stackoverflow.com/a/1732454/237955) – amphetamachine

ответ

2

Вы могли бы попробовать что-то вроде

/ (?:widget)?id="(\d+)"/ig 

как этот

var regex = /(?:widget)?id="(\d+)"/g; 
 
var test = '<div id="1566" widgetid="1566"></div><div id="1567" widgetid="1568"></div>'; 
 

 
while((result = regex.exec(test)) != null) { 
 
    console.log(result); 
 
}

заменить случайное число, вы можете сделать:

function random(min, max) { 
 
    return Math.floor(Math.random() * (max - min)) + min; 
 
} 
 

 
var regex = /((?:widget)?id)="(\d+)"/g; 
 
var test = '<div id="1566" widgetid="1566"></div><div id="1567" widgetid="1568"></div>'; 
 
var new_string = test; 
 

 
while((result = regex.exec(test)) != null) { 
 
    new_string = new_string.replace(result[0], result[1] + '="' + random(1, 9999) + '"'); 
 
} 
 

 
console.log(new_string);

+0

Не могли бы вы показать мне, как я могу заменить содержание id и widgetid на случайное число? – GibboK

+0

, пожалуйста, прочитайте мой оригинальный вопрос, он говорит: мне нужно заменить id = "XXX" и widgetid = "XXX" на случайное число ... должен ли я создать новый вопрос? Спасибо за вашу помощь. – GibboK

+1

Ответ обновлен :) –

Смежные вопросы