2015-02-05 92 views
2

如果我有一個字符串,它看起來像這樣:刪除String中不需要的部分。正則表達式/ JS

var myString = '73gf9y::-8auhTHIS_IS_WHAT_I_WANT' 

我需要什麼正則表達式直到結束:

'THIS_IS_WHAT_I_WANT' 

我的字符串的第一部分將永遠是一個隨機各種各樣的字符。是否有一些正則表達式可以將所有內容刪除到THIS

+0

@anubhava沒有。上或下。我不介意。 – Daft 2015-02-05 14:53:36

+0

有隨機部分的固定長度? – micha 2015-02-05 14:57:23

+0

@micha不,沒有固定長度。 – Daft 2015-02-05 14:57:40

回答

5

所以,你想剝離從開頭到第一個大寫字母的所有內容嗎?

console.log(myString.replace(/^[^A-Z]+/,"")); 

THIS_IS_WHAT_I_WANT

See fiddle,還有我不知道如果這是你想要的東西:)


要去掉一切從開始到第一次發生的歷史大寫字符串,接下來是_嘗試:

myString.replace(/^.*?(?=[A-Z]+_)/,""); 

這使用了一個lookahead。見Test at regex101;

3

通過輸入,您可以使用match。字符類別[A-Z_]匹配任何大寫字母和_(Underscore)和+量詞以及$錨字符匹配字符類直到字符串結尾。

myString = myString.match(/[A-Z_]+$/)[0]; 
console.log(myString); // THIS_IS_WHAT_I_WANT 
+0

對不起,那個表達會給我什麼回報? – Daft 2015-02-05 14:54:05

+1

@Daft會給你'THIS_IS_WHAT_I_WANT' – 2015-02-05 14:55:41

1

添加到阿米特條既納的優秀的解決方案(對不起,我沒有代表尚未就此發表評論):因爲match返回結果的數組,如果你需要從字符串中刪除不需要的字符,你可以使用join

input = '(800) 555-1212'; 
result = input.match(/[0-9]+/g).join(''); 
console.log(result); // '8005551212' 
相關問題