Предстоящая спецификация языка ECMAScript, издание 6, включает регулярные выражения, поддерживающие Unicode. Поддержка должна быть активирована с помощью модификатора u
в регулярном выражении. См. регулярные выражения, поддерживающие Unicode в ES6 .
До тех пор, пока ES 6 не будет закончена и широко распространена среди поставщиков браузеров, вы все равно по-своему. Обновление: теперь существует транспилер с именем regexpu , который преобразует регулярные выражения Unicode ES6 в эквивалентные ES5. Он может использоваться как часть процесса сборки. Попробуйте в Интернете.
Несмотря на то, что JavaScript работает в строках Unicode, он не реализует классы символов, совместимые с Unicode, и не имеет понятия классов символов POSIX или блоков / поддиапазонов Unicode.
[\u2000-\u206F\u2E00-\u2E7F]
Вот метод (закупорите его в / lib и потребуйте его в environment.rb):
def same_page?(a, b, params_to_exclude = {})
if a.respond_to?(:except) && b.respond_to?(:except)
url_for(a.except(params_to_exclude)) == url_for(b.except(params_to_exclude))
else
url_for(a) == url_for(b)
end
end
Если Вы находитесь на направляющих пред2.0.1, также необходимо добавить except
вспомогательный метод Хешировать:
class Hash
# Usage { :a => 1, :b => 2, :c => 3}.except(:a) -> { :b => 2, :c => 3}
def except(*keys)
self.reject { |k,v|
keys.include? k.to_sym
}
end
end
Более поздняя версия направляющих (хорошо, ActiveSupport) включают except
уже (кредит: Brian Guthrie)
Действительно ли это - вид вещи, которая Вы после?
def same_url?(one, two)
url_for(one) == url_for(two)
end
def all_urls_same_as_current? *params_for_urls
params_for_urls.map do |a_url_hash|
url_for a_url_hash.except(*exclude_keys)
end.all? do |a_url_str|
a_url_str == request.request_uri
end
end
Где:
params_for_urls
массив хешей параметров URL (каждая запись массива параметрические усилители для создания URL),exclude_keys
массив символов для ключей, которые Вы хотите проигнорироватьrequest.request_uri
может не быть точно, что необходимо использовать, посмотрите ниже.Затем существуют все виды вещей, которые Вы захотите рассмотреть при реализации версии: