2012-06-30 102 views
0

我想要完成的是自動生成用於文件上傳的標記/關鍵字,並將這些關鍵字從文件名中提取出來。如果字符串包含數字值,則從字符串中刪除整個單詞

我已經完成了自動生成冠軍每次上傳,如下所示: enter image description here

但現在我已經轉移到試圖自動生成關鍵字。與標題類似,但格式更多。首先,我通過this運行字符串從文件名(如this,that,there ...等)

我很高興與它刪除常用詞,但我需要不包括在裏面有一個數字的話。如果它包含一個數字,我還沒有找到完全刪除單詞的解決方案。我找到的解決方案像here只適用於某種匹配,而this one只能刪除數字。 我想刪除整個單詞,如果它包含任何數字數字。

回答

0

爲了除去含有的數,使用的所有詞語:

string = string.replace(/[a-z]*\d+[a-z]*/gi, ''); 
+0

「555.jpg」情況如何? – Engineer

+0

@Engineer數字被刪除,只剩下'.jpg'。 –

+0

感謝羅布,這是一個非常好的答案。它完成了我需要完成的工作,但是當包含數字的單詞以大寫字母開頭(例如'Amazon1')時,它會在那裏留下大寫字母(返回'A')。但是,在運行它之前,我*給它加上了字符串,現在它完美了! :)布拉沃... **編輯**我看到你用帽子解決了問題,所以現在這絕對是完美的,沒有我的幫助,非常感謝!正是我所需要的 – Mafia

1

對當前文件名字符串應用簡單的正則表達式,用空字符串替換所有出現的地方。正則表達式匹配包含任何數字的「單詞」。

的Javascript例如:

'asdf 8bit jawesome234 mayhem 234'.replace(/\s*\b\w*\d\w*\b/g, '') 

則計算結果爲:

"asdf mayhem" 

這裏正則表達式是/\s*\b\w*\d\w*\b/g,它匹配由零個或多個隨後是字處理空白字符(\s*)最大序列邊界轉變(\b),接着是零個或更多的字母字符(\w*),後面跟着一個數字(\d),接着是零個或更多的阿爾法um個字符,然後是字邊界轉換(\b)。 \b與從單詞的開頭或結尾或非字母數字字符過渡到字母數字字符時的空字符串匹配。 g之後的最後/的正則表達式意味着替換所有的事件,而不僅僅是第一個。

刪除數字後,您可以將字符串拆分爲關鍵字(例如,通過空格)。

"asdf mayhem".split(/\s+/); 

則計算結果爲:

["asdf", "mayhem"] 
+0

你好@美星-B,但它是無法刪除整個單詞,這只是刪除號碼,我希望能刪除整個單詞。 (不只是數字)例如:'2morrow tomorrow',然後我只想返回'tomorrow'並從字符串中完全刪除'2morrow',因爲它包含一個數字(所以關鍵字不會看起來破碎,否則我會):) – Mafia

+0

爲什麼不只是\ b [^ \ d] * \ b – Trey

+0

@愛啊,我明白了,我誤解了你想要的東西。正在修復... –

0

使用這種刪除包含數字字:

string.replace("[0-9]",""); 

希望這可以幫助。

被修改:

檢查此:

var str = 'one 2two three3 fo4ur 5 six'; 
var result = str.match(/(^[\D]+\s|\s[\D]+\s|\s[\D]+$|^[\D]+$)+/g).join(''); 
+0

不會,這將取代所有數字的出現,無論它們是否構成整個單詞。例如,「8bit混亂」將成爲「有點混亂」。 –

+0

哎呀!我接到你了。任何單詞以數字開頭並以數字結尾。你是這個意思嗎? –

+0

「一二二三三五六」應該變成「一六」 –

1

嘗試這個表達式:

var regex = /\b[^\s]*\d[^\s]*\b/g; 

實施例:

var str = "normal 5digit dig555it digit5 555"; 
console.log(str.replace(regex,''));​ //Result-> normal  
+0

1.字邊界是不必要的。 2.在屏幕截圖中(請參閱問題),單詞似乎由連字符分隔。 ''normal-5''的結果是''「',使用你的代碼。 –

+0

@RobW可能它們是不必要的,但我寫了一般情況下的正則表達式。 – Engineer

+0

@RobW只是爲了指出,OP已經分割字符串,使標題....可以在分割後運行這個正則表達式對標題;) – Trey

1
('Apple Cover Photo 23s423 of your 543634 moms').match(/\b([^\d]+)\b/g, '') 

回報

蘋果封面照片,你的,媽媽

http://jsfiddle.net/awBPX/2/

+0

不錯,這個作品太:) – Mafia

相關問題