2015-02-05 44 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' 
相关问题