删除不需要的String部分。正则表达式/ JS

时间:2015-02-05 14:51:17

标签: javascript regex

如果我有一个看起来像这样的字符串:

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

我最终需要什么样的正则表达式:

'THIS_IS_WHAT_I_WANT'

我的String的第一部分将始终是随机的各种字符。是否有一些正则表达式会删除THIS之前的所有内容?

3 个答案:

答案 0 :(得分:6)

所以你想要删除从开头到第一个大写字母的所有内容吗?

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

THIS_IS_WHAT_I_WANT

See fiddle,我不确定这是不是你想要的:)。


要删除从开始到第一个出现的大写字符串的所有内容,然后_尝试:

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

这使用lookahead。见Test at regex101;

答案 1 :(得分:5)

根据输入,您可以使用match。字符类[A-Z_]匹配任何大写字母,_(下划线)和+量词以及$锚点匹配字符类直到字符串结尾。

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

答案 2 :(得分:1)

添加到Amit Joki的优秀解决方案(抱歉,我还没有尚未发表评论):由于match返回结果数组,如果您需要从字符串中删除不需要的字符,则可以使用join

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