如果我有一个看起来像这样的字符串:
var myString = '73gf9y::-8auhTHIS_IS_WHAT_I_WANT'
我最终需要什么样的正则表达式:
'THIS_IS_WHAT_I_WANT'
我的String的第一部分将始终是随机的各种字符。是否有一些正则表达式会删除THIS
之前的所有内容?
答案 0 :(得分:6)
所以你想要删除从开头到第一个大写字母的所有内容吗?
console.log(myString.replace(/^[^A-Z]+/,""));
THIS_IS_WHAT_I_WANT
See fiddle,我不确定这是不是你想要的:)。
要删除从开始到第一个出现的大写字符串的所有内容,然后_
尝试:
myString.replace(/^.*?(?=[A-Z]+_)/,"");
答案 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'