2015-05-18 5 views
2

Я пытаюсь разделить эту строкуJavaScript Расщепление ошибка строки

"http://localhost/webproject/products.html?product=Apple%20iPhone%206%20With%20FaceTime%20class=" 

этой

"Apple iphone 6 with Facetime" 

, но мой код расщепляет только его

"Apple iphone 6 with Facetime class" 

и когда я m пытается удалить слово класса и предупредить строку, он выглядит пустым. Когда я предупрежу split5 это выглядит как NaN

var url = window.location.href; 
var split = url.split('='); 
var split2 = split[1]; 
var split3 = split2.replace(/20/g,""); 
var split4 = split3.replace(/%/g, " "); 
var split5 = split4.count-5; 
var split6 = split4.slice(0, split5); 
alert(split6); 
+1

'split4.count'? Вы имеете в виду 'split4.length'? –

+0

Сэкономьте некоторое время: 'var split2 = decodeURI (split [1]);' –

+0

Черт, я забыл спасибо. Я привык к списку массивов в C#. – Karim

ответ

0

Вы можете разделить вашу строку на '% 20', удалить последнее значение с помощью pop(), а затем присоединиться к результату:

var url = "http://localhost/webproject/products.html?product=Apple%20iPhone%206%20With%20FaceTime%20class=" 
 

 
var split1 = url.split('=')[1] 
 
var split2 = split1.split('%20') 
 
split2.pop() 
 
alert(split2.join(' '))

Дополнительная информация о Array.prototype.pop()

0

Вы можете сделать b etter способ используя decodeURI() способ. Вместо count вы должны использовать length.

string не имеет count собственности, поэтому вы получаете `NaN1.

var url = window.location.href; 
var split = url.split('='); 
var split2 = decodeURI(split[1]); 
var split5 = split2.length-5; 
var split6 = split2.substring(0, split5); 
alert(split6); 
0

Кроме того, в качестве ярлыка, вы можете установить второй аргумент метода string.slice отрицательное число, чтобы удалить, что много символов с конца строки, например, -5, чтобы отрезать последние 5 персонажи.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice

1

@Karim, что происходит это вы используете заменить, а затем подсчет -5 над местом этих символов. Вот почему он возвращает NaN.

Вот то, что вы хотите:

var url = 'http://localhost/webproject/products.html?product=Apple%20iPhone%206%20With%20FaceTime%20class='; 
 
var split = url.split('='); 
 
var split2 = split[1]; 
 
var split3 = split2.split('%20'); 
 
alert(split3.join(' '));

+0

Yup, Charlesthk ответил это прямо передо мной. – iSkore

Смежные вопросы