Просто
var ary = ['three', 'seven', 'eleven'];
var index = ary.indexOf('seven'); // get index if value found otherwise -1
if (index > -1) { //if found
ary.splice(index, 1);
}
([A-Z][a-z0-9]+)+
Assuming English. Use appropriate character classes if you want it internationalizable. This will match words such as "This". If you want to only match words with at least two capitals, just use
([A-Z][a-z0-9]+){2,}
UPDATE: Как я упоминал в комментарии, лучшая версия:
[A-Z]([A-Z0-9]*[a-z][a-z0-9]*[A-Z]|[a-z0-9]*[A-Z][A-Z0-9]*[a-z])[A-Za-z0-9]*
Она соответствует строкам, которые начинаются с заглавной буквы, содержат только буквы и цифры и содержат как минимум одну строчную букву и как минимум одну заглавную букву.
Регулярное выражение Адама Крума близко, но не соответствует, например, IFoo
или HTTPConnection
. Не уверен насчет других, но попробуйте это:
\b[A-Z][a-z]*([A-Z][a-z]*)*\b
Те же предостережения, что и в ответе Адама относительно цифр, I18N, символов подчеркивания и т. Д.
Вы можете проверить это здесь .
Кажется, это помогает:
/^[A-Z][a-z]+([A-Z][a-z]+)+/
Я включил модульные тесты Ruby:
require 'test/unit'
REGEX = /^[A-Z][a-z]+([A-Z][a-z]+)+/
class RegExpTest < Test::Unit::TestCase
# more readable helper
def self.test(name, &block)
define_method("test #{name}", &block)
end
test "matches camelcased word" do
assert 'FooBar'.match(REGEX)
end
test "does not match words starting with lower case" do
assert ! 'fooBar'.match(REGEX)
end
test "does not match words without camel hump" do
assert ! 'Foobar'.match(REGEX)
end
test "matches multiple humps" do
assert 'FooBarFizzBuzz'.match(REGEX)
end
end
([A-Z][a-z\d]+)+
Подойдет для верхнего ящика верблюда. Вы также можете добавить к нему начальные подчеркивания, если хотите рассмотреть что-то вроде _IsRunning upper camel case.