2016-10-04 27 views
-1

我對於正則表達式是全新的。

我拉大量的選擇下拉列表中有很多未選中的值的值。以下是原始數據的示例:

NoneNoneNoneBP #15 Plain Felt 36" | $10.00NoneNoneNoneNoneNoneNone 

所有「無」值均爲空選擇。

我需要去掉所有的垃圾數據離開產品的唯一名稱即「BP#15平氈36」

也就是說在$,值全部爲「無」和「|」都必須去。

我做得很好,除了我的正則表達式去掉產品名稱中的數字以及美元值。即和。

我不知道如何隔離與$值有關的數字而不會影響與產品說明相關的數字。有什麼建議? tks!

這是我到目前爲止有:

var materials_replace = materials.replace(/None|\||[\$(\d)(\.)]/g,''); 
+0

看起來像你接近...你不想匹配個人角色(其中是什麼'[']'),你想匹配序列$ ##。## - 任何美元符號後跟1個或多個數字,可能後跟一個小數,後跟一個或多個數字......該序列最後看起來更像你用來匹配「無」(即字符序列N-o-n-e).... –

回答

1

你的前兩個部分看的權利(?雖然你關心周圍的空白的|)

None 
\| 

最後一部分會看像

\$\d+(?:\.\d+)? 

\ $ - 美元符號

\ d + - 後跟一個或多個數字

(?:。\ d +)? - 可選擇後跟一個十進制加一個或多個數字 - (?:..)部分只是創建一個不被「捕獲」的組(儘管由於您使用正則表達式來匹配替換,因此這裏捕獲並不重要)我們需要組\.\d+一部分,儘管說組本身可選匹配(最後?)

0

如果你想用空格或空白這裏全部更換None試試這個

var valueeee = 'NoneNoneNoneBP #15 Plain Felt 36" | $10.00NoneNoneNoneNoneNoneNone' 
 

 
var strs = valueeee.replace(/\None/g,''); 
 
var str = valueeee.replace(/\None|\|/g,''); 
 
console.log(str); 
 
console.log(strs);