JavaScript 正規表現を使わない文字列検索
JavaScriptでよく使う文字列の検索方法、前方一致、後方一致
jQuery
$(function () {
// 部分一致
// console.log('foobar'.indexOf('foo')); 0
// console.log('foobar'.indexOf('bar')); 3
// console.log('foobar'.indexOf('baz')); -1
// strが検索対象、'foo'が検索する文字列
if (str.indexOf('foo') > -1) {
console.log('一致');
} else {
console.log('不一致');
}
// Uncaught TypeError: str.indexOf is not a function 発生時
// str.toString() で文字列へ変換
// 部分一致(大文字小文字区別せず)
// console.log('FooBar'.toUpperCase().indexOf('foo'.toUpperCase())); 0
if (str.toUpperCase().indexOf('foo'.toUpperCase()) > -1) {
console.log('一致');
} else {
console.log('不一致');
}
// 前方一致
if (str.indexOf('foo') === 0) {
console.log('一致');
} else {
console.log('不一致');
}
// 後方一致
// console.log('foobar'.lastIndexOf('foo')); 0
// console.log('foobar'.length - 'foo'.length); 3
// console.log('foobar'.lastIndexOf('bar')); 3
// console.log('foobar'.length - 'bar'.length); 3
if ((str.lastIndexOf('foo') == str.length - 'foo'.length)) {
console.log('一致');
} else {
console.log('不一致');
}
// 対象(配列)に検索文字列が含まれている場合はTRUE
// var arr = ['foo', 'bar'];
// console.log($.inArray('foo', arr)); 0
// console.log($.inArray('bar', arr)); 1
// console.log($.inArray('baz', arr)); -1
if ($.inArray('foo', arr) > -1) {
console.log('含む');
} else {
console.log('含まない');
}
// var arr = ['foo', 'bar'];
// console.log(arr.indexOf('foo')); 0
// console.log(arr.indexOf('bar')); 1
// console.log(arr.indexOf('baz')); -1
if (arr.indexOf('foo') > -1) {
console.log('含む');
} else {
console.log('含まない');
}
// var arr = ['foo', 'bar'];
// console.log(arr.includes('foo')); true
// console.log(arr.includes('baz')); false
if (arr.includes('foo')) {
console.log('含む');
} else {
console.log('含まない');
}
});