JavaScript регулярное выражение получить слово между текстами - PullRequest
0 голосов
/ 27 марта 2012

В javascript мне нужно получить текст внутри пользовательского тега. Например

[tag_ ретвит attr = "val" attr2 = "val"]

В этом случае мне нужно получить слово «ретвит», пропуская только все остальные тексты, и еще один пример,

[tag_ Доля ]

Здесь мне нужно получить слово «поделиться».

Так что же будет регулярным выражением для получения этого имени тега в моем случае ??

Ответы [ 3 ]

1 голос
/ 27 марта 2012

По сути, вы ищете, что следует за [tag_, вплоть до следующего пробела (или конца тега)

Итак:

var tag = '[tag_retweet attr="val" attr2="val"]';
// or var tag = '[tag_share]';
var match = tag.match(/\[tag_(.*?)[\] ]/)[1];
1 голос
/ 27 марта 2012

что-то вроде /\[tag_([a-z0-9_]+)(?:\s+|\])/

var tag = '[tag_retweet attr="val" attr2="val"]';
var match = tag.match(/\[tag_([a-z0-9_]+)(?:\s+|\])/);
window.alert(match[1]);​ // alerts "retweet"
1 голос
/ 27 марта 2012

Регулярное выражение для его захвата будет:

/.*\[tag_(.*?)\W.*/

Это соответствует любым символам до конца [tag_, а затем начинает захватывать любые символы, пока не встретит неслово символ, затем любые другие символы.Матч будет содержать только соответствующие части.

используйте его как:

myString.match(/.*\[tag_(.*?)\W.*/)[1]

...