在某一点之前替换所有文本

时间:2012-05-13 02:08:59

标签: javascript jquery regex

$(function(){
    var alphabet = "ABCDEFGHIJKLMNOPQRSTUVEXYZ";
    var replaced = alphabet.replace(/(M).+$/,'');
    $('body').text(replaced);
});

我怎样才能朝着相反的方向前进,取代M及之前的一切?

3 个答案:

答案 0 :(得分:23)

使用/^.+M/表达式:

$(function() {
    var alphabet = "ABCDEFGHIJKLMNOPQRSTUVEXYZ";
    var replaced = alphabet.replace(/^.+M/,'');
    $('body').text(replaced);
});

DEMO: http://jsfiddle.net/kbZhU/1/


更快的选择是使用indexOfsubstring方法:

$(function(){
    var alphabet = "ABCDEFGHIJKLMNOPQRSTUVEXYZ";
    var replaced = alphabet.substring(alphabet.indexOf("M") + 1);
    $('body').text(replaced);
});

DEMO: http://jsfiddle.net/kbZhU/2/

答案 1 :(得分:1)

以下是使用split方法的另一种方法:

$(function(){
    var alphabet = "ABCDEFGHIJKLMNOPQRSTUVEXYZ";
    var replaced = alphabet.split("M")[1];
    $('body').text(replaced);
});

答案 2 :(得分:0)

仅供参考,如果您尝试使用多个字母进行此操作,则必须稍作更改。

使用@VisioN解决方案,我一直尝试替换URL中的任何内容,直到某个时候。

因此,要获取https://www.google.com/analytics中'google.com'之后的所有内容,我必须做

const url = 'https://www.google.com/analytics'
const lookingFor = 'google.com'
const replaced = url.substring(url.indexOf(lookingFor) + lookingFor.length)

replaced然后将返回/analytics