У меня есть строка, которая выглядит так:
0000000020C90037: TEMP: данные
И мне нужно захватить все после первой толстой кишки, так что у меня есть TEMP: данные.
Я не часто работаю в Javascript, если бы это был PHP, я бы сделал это:
$str = '0000000020C90037:TEMP:data'; $arr = explode(":", $str); $var = $arr[1].":".$arr[2];
//Loading the variable var mystr = '0000000020C90037:TEMP:data'; //Splitting it with : as the separator var myarr = mystr.split(":"); //Then read the values from the array where 0 is the first var myvar = myarr[0] + ":" + myarr[1];
Вам не нужно делиться. Вы можете использовать indexOf
и substr
:
str = str.substr(str.indexOf(':')+1);
Но эквивалент explode
будет split
.
Похоже, вы хотите разделить
String.prototype.explode = function(separator, limit) { var arr = this.split(separator); if (limit) arr.push( arr.splice(limit-1).join(separator) ); return arr; }
Попробуй это:
arr = str.split (":");
Создать объект:
// create a data object to store the information below. var data = new Object(); // this could be a suffix of a url string. var string = "?id=5&first=John&last=Doe"; // this will now loop through the string and pull out key value pairs seperated // by the & character as a combined string, in addition it passes up the ? mark var pairs = string.substring(string.indexOf('?')+1).split('&'); for(var key in pairs) { var value = pairs[key].split("="); data[value[0]] = value[1]; } // creates this object var data = {"id":"5", "first":"John", "last":"Doe"}; // you can then access the data like this data.id = "5"; data.first = "John"; data.last = "Doe";
Использовать String.split
"0000000020C90037:TEMP:data".split(':')
Если вам нравится php, взгляните на php.JS – JavaScript explode
Или в обычных функциях JavaScript: `
var vInputString = "0000000020C90037:TEMP:data"; var vArray = vInputString.split(":"); var vRes = vArray[1] + ":" + vArray[2]; `
console.log(('0000000020C90037:TEMP:data').split(":").slice(1).join(':'))
выходы: TEMP:data
Без намерений критиковать Джона Хартсока , на всякий случай количество разделителей может варьироваться для любого, кто использует данный код, я бы официально предложил использовать это вместо этого …
var mystr = '0000000020C90037:TEMP:data'; var myarr = mystr.split(":"); var arrlen = myarr.length; var myvar = myarr[arrlen-2] + ":" + myarr[arrlen-1];
Поэтому я знаю, что этот пост довольно старый, но я решил, что могу добавить функцию, которая помогала мне на протяжении многих лет. Почему бы просто не переделать функцию взрыва с использованием split, как указано выше? Ну вот он:
function explode(str,begin,end) { t=str.split(begin); t=t[1].split(end); return t[0]; }
Эта функция работает хорошо, если вы пытаетесь получить значения между двумя значениями. Например:
data='[value]insertdataherethatyouwanttoget[/value]';
Если вы заинтересованы в получении информации между двумя тегами [values], вы можете использовать функцию, как показано ниже.
out=explode(data,'[value]','[/value]'); //Variable out would display the string: insertdataherethatyouwanttoget
Но предположим, что у вас нет таких удобных «тегов», как приведенный выше пример. Не важно.
out=explode(data,'insert','wanttoget'); //Now out would display the string: dataherethatyou
Вана видит это в действии? Нажмите здесь .
var str = '0000000020C90037:TEMP:data'; // str = "0000000020C90037:TEMP:data" str = str.replace(/^[^:]+:/, ""); // str = "TEMP:data"
Просто небольшое дополнение к ответу на пси-брм (его версия не работает в IE <= 8). Этот код совместим с несколькими браузерами:
function explode (s, separator, limit) { var arr = s.split(separator); if (limit) { arr.push(arr.splice(limit-1, (arr.length-(limit-1))).join(separator)); } return arr; }
Если вы хотите определить свою собственную функцию, попробуйте следующее:
function explode (delimiter, string, limit) { if (arguments.length < 2 || typeof delimiter === 'undefined' || typeof string === 'undefined') { return null } if (delimiter === '' || delimiter === false || delimiter === null) { return false } if (typeof delimiter === 'function' || typeof delimiter === 'object' || typeof string === 'function' || typeof string === 'object') { return { 0: '' } } if (delimiter === true) { delimiter = '1' } // Here we go... delimiter += '' string += '' var s = string.split(delimiter) if (typeof limit === 'undefined') return s // Support for limit if (limit === 0) limit = 1 // Positive limit if (limit > 0) { if (limit >= s.length) { return s } return s .slice(0, limit - 1) .concat([s.slice(limit - 1) .join(delimiter) ]) } // Negative limit if (-limit >= s.length) { return [] } s.splice(s.length + limit) return s }
var str = "helloword~this~is~me"; var exploded = str.splice(~);
взорванная переменная будет возвращать массив, и вы можете получить доступ к элементам массива, чтобы получить доступ к нему true exploded [nth], где nth – это индекс значения, которое вы хотите получить