PHPのstrstr()
と同じことをするjQueryまたはJavaScriptの関数はありますか?
AJAX応答は1、2、3、12、13、23、または123である必要があります。1が存在するかどうか、2が存在する場合、3が存在するかどうかを確認したいと思います。
うまくいくものを見つけました!
http://my-sliit.blogspot.com/2008/06/search-string-javascript-like-strstr-in.html
あなたの貢献に感謝します:)
これを使用してみてください:
function strstr(haystack, needle, bool) {
// Finds first occurrence of a string within another
//
// version: 1103.1210
// discuss at: http://phpjs.org/functions/strstr // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + bugfixed by: Onno Marsman
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// * example 1: strstr(‘Kevin van Zonneveld’, ‘van’);
// * returns 1: ‘van Zonneveld’ // * example 2: strstr(‘Kevin van Zonneveld’, ‘van’, true);
// * returns 2: ‘Kevin ‘
// * example 3: strstr(‘[email protected]’, ‘@’);
// * returns 3: ‘@example.com’
// * example 4: strstr(‘[email protected]’, ‘@’, true); // * returns 4: ‘name’
var pos = 0;
haystack += "";
pos = haystack.indexOf(needle); if (pos == -1) {
return false;
} else {
if (bool) {
return haystack.substr(0, pos);
} else {
return haystack.slice(pos);
}
}
}
( http://phpjs.org/functions/strstr:551 から)
全体的にphpjsはかなり驚異的です。
これらのJavaScript関数(indexOF()およびlastIndexOf())についてお読みください。
まあ、組み込まれていません。String.indexOf( String str )
は部分文字列の整数インデックスを返しますが、簡単に構築できます: http://aimtb.wordpress.com/2011/03/16/strstr -in-javascript /
function strstr(haystack, needle, bool) {
// Finds first occurrence of a string within another
//
// version: 1103.1210
// discuss at: http://phpjs.org/functions/strstr // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + bugfixed by: Onno Marsman
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// * example 1: strstr(‘Kevin van Zonneveld’, ‘van’);
// * returns 1: ‘van Zonneveld’ // * example 2: strstr(‘Kevin van Zonneveld’, ‘van’, true);
// * returns 2: ‘Kevin ‘
// * example 3: strstr(‘[email protected]’, ‘@’);
// * returns 3: ‘@example.com’
// * example 4: strstr(‘[email protected]’, ‘@’, true); // * returns 4: ‘name’
var pos = 0;
haystack += "";
pos = haystack.indexOf(needle); if (pos == -1) {
return false;
} else {
if (bool) {
return haystack.substr(0, pos);
} else {
return haystack.slice(pos);
}
}
}
ライブラリ/メソッド呼び出しのない実装は次のとおりです。
function strstr (haystack, needle) {
var i = 0,
tempLength = 0,
temp = [];
for (;;) {
if (haystack[i] === undefined || needle == null) {
return "No match";
}
//if the char doesn't match then reset
else if (haystack[i] !== needle[tempLength]) {
temp = [];
tempLength = 0;
}
//the char matches so let's store it.
else if (haystack[i] === needle[tempLength]) {
temp[tempLength] = haystack[i];
if (needle[tempLength + 1] === undefined) {
return temp;
}
tempLength++;
}
i++;
}
};