如果我有一個字符串,它看起來像這樣:刪除String中不需要的部分。正則表達式/ JS
var myString = '73gf9y::-8auhTHIS_IS_WHAT_I_WANT'
我需要什麼正則表達式直到結束:
'THIS_IS_WHAT_I_WANT'
我的字符串的第一部分將永遠是一個隨機各種各樣的字符。是否有一些正則表達式可以將所有內容刪除到THIS
?
如果我有一個字符串,它看起來像這樣:刪除String中不需要的部分。正則表達式/ JS
var myString = '73gf9y::-8auhTHIS_IS_WHAT_I_WANT'
我需要什麼正則表達式直到結束:
'THIS_IS_WHAT_I_WANT'
我的字符串的第一部分將永遠是一個隨機各種各樣的字符。是否有一些正則表達式可以將所有內容刪除到THIS
?
所以,你想剝離從開頭到第一個大寫字母的所有內容嗎?
console.log(myString.replace(/^[^A-Z]+/,""));
THIS_IS_WHAT_I_WANT
See fiddle,還有我不知道如果這是你想要的東西:)
要去掉一切從開始到第一次發生的歷史大寫字符串,接下來是_
嘗試:
myString.replace(/^.*?(?=[A-Z]+_)/,"");
這使用了一個lookahead。見Test at regex101;
通過輸入,您可以使用match
。字符類別[A-Z_]
匹配任何大寫字母和_
(Underscore)和+
量詞以及$
錨字符匹配字符類直到字符串結尾。
myString = myString.match(/[A-Z_]+$/)[0];
console.log(myString); // THIS_IS_WHAT_I_WANT
對不起,那個表達會給我什麼回報? – Daft 2015-02-05 14:54:05
@Daft會給你'THIS_IS_WHAT_I_WANT' – 2015-02-05 14:55:41
添加到阿米特條既納的優秀的解決方案(對不起,我沒有代表尚未就此發表評論):因爲match
返回結果的數組,如果你需要從字符串中刪除不需要的字符,你可以使用join
:
input = '(800) 555-1212';
result = input.match(/[0-9]+/g).join('');
console.log(result); // '8005551212'
@anubhava沒有。上或下。我不介意。 – Daft 2015-02-05 14:53:36
有隨機部分的固定長度? – micha 2015-02-05 14:57:23
@micha不,沒有固定長度。 – Daft 2015-02-05 14:57:40