Есть эти три большие возможности:
IndexOf> -1
Результат indexOf
может быть 0
означает, что строка была найденный в начале строки. Когда строка не найдена, возвращается значение -1
, поэтому:
if (idOfControl.indexOf(idOfButton) > -1) {
// Do something
}
Что может быть лучше, как написано @paxdiablo прокомментировал:
if (idOfControl.indexOf(idOfButton) >= 0) {
// Do something
}
с помощью регулярных выражений
Вы можете использовать очень простой регулярное выражение для проверки соответствия.
var idOfControl = "dlInventory_btnEditComment_0"
var control = /dlInventory_btnEditComment/;
if (idOfControl.test(control)) {
// do something
}
Этот подход может быть увеличена, чтобы захватить последний номер вашей строки (если вам это нужно)
var idOfControl = "dlInventory_btnEditComment_0"
var control = /dlInventory_btnEditComment_(\d+)/;
var match = control.exec(idOfControl);
if (match) {
alert('the number found is: ' + match[1]);
}
Вы можете попробовать его здесь: http://jsfiddle.net/4Z9UC/
через IndexOf в Hacky путь
Это использует побитовый оператор, чтобы вернуть истинное значение, когда позиция !=-1
(В примечании к дополнению 2, -1
внутренне представлен как 111...111
, и его инверсия равна 000...000
, которая равна 0
, то есть значение фальшивости). Это на самом деле более эффективно, чем опция> -1, но ее труднее читать и понимать. (EDIT: это стало настолько популярным, что вы можете сказать, что это стандарт)
if (~idOfControl.indexOf(idOfButton)) {
// do something
}
IndexOf возвращает индекс строки, если найден в противном случае возвращает -1 – Shadow
Другим вариантом является использование регулярных выражений, как 'управление =/dlInventory_btnEditComment /' а затем 'if (idOfControl.test (control)) {...}' – bgusach
это не 'false', это' falsy'. Это большая разница. –