如果我有一个字符串,它看起来像这样:删除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