2014-10-27 3 views
-1

У меня есть строка с тем же шаблоном:JavaScript Удалить строки начинается с/закончить с

вход:

azert,erty,tytr,0.243,jfrd,er,dr,0.85493,ftdre,0.2233 

выход exepected:

azert,erty,tytr,jfrd,er,dr,ftdre 

Так что мне нужно, чтобы удалить все ",0." ...

Как можно перейти на JavaScript?

Спасибо!

+0

начать с "," затем с "0." до следующего «,»: для каждого – Carlos

+1

Что вы пробовали до сих пор? Где вы застряли? Вы, должно быть, попробовали что-то! –

+0

@ Карлос: Вы на полпути к написанию регулярного выражения. Хотя обратите внимание, что ваше правило, как вы заявили, не будет охватывать «0».2233' в конце вашей строки (нет следующего ','). –

ответ

2

Вы можете использовать:

var str = 'azert,erty,tytr,0.243,jfrd,er,dr,0.85493,ftdre,0.2233'; 

var r = s.replace(/(^|,)0[^,]*/g, ''); 
//=> azert,erty,tytr,jfrd,er,dr,ftdre 

или иначе:

var r = str.replace(/(^|,)0[^,]*(,|$)/g, '$1').replace(/,+$/g, ""); 
//=> azert,erty,tytr,jfrd,er,dr,ftdre 
1

начать с "" затем "0" недо следующий "": для каждого

  • должен начинаться с , затем 0.
  • должны заменить NULL до следующего ,

Вы можете использовать

var str = "azert,erty,tytr,0.243,jfrd,er,dr,0.85493,ftdre,0.2233"; 
var output = str.replace(/(^|,)0.[^,]+/g, "") 

http://jsfiddle.net/wfhnm6oe/2/

http://regex101.com/r/bS9mY3/1

  • (^|,) - Матч Начальные строк или запятой
  • 0. - Тогда соответствует 0. буквального
  • [^,]+ - Матч все до запятой
  • /g - Глобальный флага - все матчи (не возвращаются в первом матче)
0

Вот мой прием : http://regex101.com/r/cX6qR7/1

Регулярно использованный мною номер /,0\.\d+,/g и замену ,.

var re = /,0\.\d+,/g; 
var str = 'azert,erty,tytr,0.243,jfrd,er,dr,0.85493,ftdre,0.2233'; 
var subst = ','; 

var result = str.replace(re, subst); 
Смежные вопросы