<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JSToolbox - все о JavaScript &#187; Regex</title>
	<atom:link href="http://www.jstoolbox.com/category/regex/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jstoolbox.com</link>
	<description>Блог о программировании вообще и о JavaScript в частности, уроки, статьи, заметки, база знаний.</description>
	<lastBuildDate>Mon, 07 Mar 2011 18:19:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Функция trim в JavaScript</title>
		<link>http://www.jstoolbox.com/2009/11/01/funkciya-trim/</link>
		<comments>http://www.jstoolbox.com/2009/11/01/funkciya-trim/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 20:01:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Regex]]></category>

		<guid isPermaLink="false">http://www.jstoolbox.com/?p=520</guid>
		<description><![CDATA[<p>В JavaScript нет встроенной функции, для удаления пробелов в начале и конце строки, как например в PHP, где для этого используется функция <strong>trim</strong>. Под пробелами здесь подразумеваются символы SPACE, TAB, перенос строки и многое другое. Для реализации этой функции в JavaScript как правило пользуются регулярными выражениями. Один из таких способов опубликован в моей <a href="http://www.jstoolbox.com/skripty/rabota-so-strokami/obrezanie-stroki-trim/" title="Обрезание строки (trim)">базе знания</a>, в котором используется довольно таки простое регулярное выражение: "/^\s+&#124;\s+$/".</p>
<p>Как оказалось, такое выражение будет работать правильно не во всех браузерах, поскольку символ "\s" реализован в них по-разному. Подробней об этом можете прочитать <a href="http://thinkweb2.com/projects/prototype/whitespace-deviations/" title="Whitespace deviations">здесь</a> (англ.).</p>]]></description>
			<content:encoded><![CDATA[<p>В JavaScript нет встроенной функции для удаления пробелов в начале и конце строки, как например в PHP, где для этого используется функция <strong>trim</strong>. Под пробелами здесь подразумеваются символы SPACE, TAB, перенос строки и многое другое. Для реализации этой функции в JavaScript как правило пользуются регулярными выражениями. Один из таких способов опубликован в моей <a href="http://www.jstoolbox.com/skripty/rabota-so-strokami/obrezanie-stroki-trim/" title="Обрезание строки (trim)">базе знания</a>, в котором используется довольно таки простое регулярное выражение: &#8220;/^\s+|\s+$/&#8221;.</p>
<p>Как оказалось, такое выражение будет работать правильно не во всех браузерах, поскольку символ &#8220;\s&#8221; реализован в них по-разному и некоторые символы не трактуются как &#8220;пробельные&#8221;. Подробней об этом можете прочитать <a href="http://thinkweb2.com/projects/prototype/whitespace-deviations/" title="Whitespace deviations">здесь</a> (англ.). Из этого же источника привожу результаты сравнительных тестов, показывающих различие в работе со строками в различных браузерах.</p>
<p><span id="more-520"></span></p>
<div class="entry_picture" style="width:300px">
<a href="http://www.jstoolbox.com/blog/wp-content/uploads/2009/11/tests.jpg"><img src="http://www.jstoolbox.com/blog/wp-content/uploads/2009/11/tests-300x154.jpg" alt="Тесты браузеров на работу со строками" title="Тесты браузеров на работу со строками" width="300" height="154" class="alignnone size-medium wp-image-521" /></a>
</div>
<p>Как вариант решения этой проблемы, вместо выражения &#8220;\s&#8221; можно использовать группировку по симолам Unicode для обрезаемых символов:</p>
<pre class="prettyprint">
[\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029]
</pre>
<p>Один из вариантов реализации функций trim, trimLeft и trimRight с использованием такой группировки я нашел в библиотеке <a href="http://code.google.com/p/vice-versa/" title="vice-versa JavaScript library">vice-versa</a>:</p>
<pre class="prettyprint">
/** vice-versa String
 * @author      Andrea Giammarchi
 * @license     Mit Style License
 * @blog        http://webreflection.blogspot.com/
 * @project     http://code.google.com/p/vice-versa/
 * @version     0.20090710192302
 * @note        these method are about ECMAScript 5
 */

/** full specs String prototype trim, trimLeft, and trimRight
 * @target  Chrome, FireFox < 3.5, Internet Explorer, Opera, Safari
 */
(function(trim){
    var o = {
        trim:new RegExp("^" + trim + "|" + trim + "$", "g"),
        trimLeft:new RegExp("^" + trim),
        trimRight:new RegExp(trim + "$")
    },  k;
    for(k in o)
        if(!String.prototype[k])
            String.prototype[k] = (function(trim){
                return function(){
                    return this.replace(trim, "");
                };
            })(o[k]);
    delete o;
    delete k;
})("[\\x09\\x0A-\\x0D\\x20\\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]+");
</pre>
<p>Источник: <a href="http://code.google.com/p/vice-versa/source/browse/trunk/src/String.js" rel="nofollow">http://code.google.com/p/vice-versa/source/browse/trunk/src/String.js</a>.</p>
<div class="postLinks"><strong>При поддержке:</strong><br/>lazzy.ru - <a href=http://lazzy.ru/>что читать</a>?<br/>planiruem.com  - <a href=http://planiruem.com/>планирование беременности</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.jstoolbox.com/2009/11/01/funkciya-trim/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Онлайн сервис для проверки регулярных выражений</title>
		<link>http://www.jstoolbox.com/2008/11/07/proverka-regulyarnyx-vyrazhenij/</link>
		<comments>http://www.jstoolbox.com/2008/11/07/proverka-regulyarnyx-vyrazhenij/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 08:55:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Regex]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Регулярные выражения]]></category>

		<guid isPermaLink="false">http://www.jstoolbox.com/2008/11/07/onlajn-servis-dlya-proverki-regulyarnyx-vyrazhenij/</guid>
		<description><![CDATA[Сегодня я случайно нашел отличный онлайн сервис для проверки регулярных выражений на JavaScript. Как мне кажется, такой инструмент может сэкономить массу времени, в особенности тем, кто не очень силен в регулярках. По сути, сервис работает очень просто &#8211; в одно поле вводите регулярное выражение, в другой вводите текст, по которому выполнять проверку, и жмете Go:




Дополнительно [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня я случайно нашел отличный <a href="http://www.pagecolumn.com/tool/regtest.htm" title="онлайн сервис для проверки регулярных выражений на JavaScript">онлайн сервис</a> для проверки регулярных выражений на JavaScript. Как мне кажется, такой инструмент может сэкономить массу времени, в особенности тем, кто не очень силен в регулярках. По сути, сервис работает очень просто &#8211; в одно поле вводите регулярное выражение, в другой вводите текст, по которому выполнять проверку, и жмете Go:</p>
<div class="entry_picture" style="width:441px">
<img src='http://www.jstoolbox.com/wp-content/uploads/2008/11/regex.png' alt='Online инструмент для проверки регулярных выражений' />
</div>
<p><span id="more-234"></span></p>
<p>Дополнительно в форме есть два поля: одно для указания модификаторов, например <strong>i</strong> для отмены чувствительности к регистру символов, и второе поле выпадающий список, где можно выбрать JavaScript функцию &#8211; <strong>test</strong>, <strong>exec</strong> и др. Результат проверки выражения отображается сразу под формой:</p>
<div class="entry_picture" style="width:414px">
<img src='http://www.jstoolbox.com/wp-content/uploads/2008/11/regex2.png' alt='Результаты проверки регулярного выражения' />
</div>
<p>Во вкладке <strong>Match</strong> будет показан найденный результат, во вкладке <strong>Return</strong> результат, который вернет выбранная из списка функция. В <strong>Parenthesized</strong> будет показан результат выражений в скобках (<strong>$1</strong>, <strong>$2</strong>).</p>
<p>Еще одна важная вещь, на которую хочу обратить внимание, это краткий справочник, который расположен тут же на странице.</p>
<div class="entry_picture" style="width:330px">
<img src='http://www.jstoolbox.com/wp-content/uploads/2008/11/regex3.png' alt='Справочник' />
</div>
<p>Если значение таких символов, как <strong>?</strong> и <strong>*</strong>, вполне понятны, то о более сложных, как к примеру это &#8211; <strong>(?:x)</strong>, не плохо было бы навести справки.</p>
<p><a href="http://www.pagecolumn.com/tool/regtest.htm" class="external" title="Проверка регулярных выражений">Главная страница сервиса</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jstoolbox.com/2008/11/07/proverka-regulyarnyx-vyrazhenij/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

