Javascript RegEx Как сделать - PullRequest
0 голосов
/ 20 марта 2012

Я хочу извлечь "abc" из "images/abc.png", используя Javascript Регулярный эксперимент в одну строку.

Я пробовал это

<script type="text/javascript">
var str = "images/abc.png";
var patt1 = /images\/[a-z]+?/i;
document.write(str.split(patt1));
</script>

Ответы [ 2 ]

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

С захватом:

var text = "images/abc.png".replace(/^.*?\/(.*?)\.[^.]*$/, '$1');

или без захвата:

var text = "images/abc.png".replace(/^.*?\//, '').replace(/\.[^.]*$/, '');

, если вы хотите сопоставить с images/, то вам следует заменить первые .*? на images.

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

Вы хотите использовать группу захвата , например:

var match = "images/abc.png".match(/images\/([^.]+)\.png/);
var text = match && match[1];

Вы можете сделать это в одну строку, только если вы знаете , что она будет соответствовать;в противном случае вы получите исключение.

На самом деле, я мог бы обмануть и использовать оператор запятой, чтобы получить его в одной строке:

var match = "images/abc.png".match(/images\/([^.]+)\.png/), text = match && match[1];

... но я думаю, что это сильно проигрывает

Полезно читать страницу MDC с регулярными выражениями .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...