如何从字符串中删除文本?


Answers:


1155

var ret = "data-123".replace('data-','');
console.log(ret);   //prints: 123

文件。


对于所有要丢弃的事件,请使用:

var ret = "data-123".replace(/data-/g,'');

PS:replace函数返回一个新字符串,并使原始字符串保持不变,因此在replace()调用之后使用该函数的返回值。


如何替换多个表达式?您是否必须使用多个.replace调用?
Dror Bar

124

这与jQuery没有任何关系。您可以replace为此使用JavaScript 函数:

var str = "data-123";
str = str.replace("data-", "");

您也可以将正则表达式传递给此函数。在以下示例中,它将替换数字以外的所有内容:

str = str.replace(/[^0-9\.]+/g, "");

您能解释一下正则表达式的作用吗?我不明白为什么它会替换字符串,除非另有0-9说明。
rotimi-best,

60

您可以使用"data-123".replace('data-','');,如提及,但replace()只是取代了FIRST匹配的文本的情况下,如果你的字符串是像"data-123data-"然后

"data-123data-".replace('data-','');

只会替换第一个匹配的文本。您的输出将是"123data-"

演示

因此,如果您希望将所有文本匹配替换为字符串,则必须使用带有如下g标记的正则表达式:

"data-123data-".replace(/data-/g,'');

您的输出将是 "123"

演示2


28

您可以使用slice()来恢复开始到结束之间的字符(包括结束点)

   string.slice(start , end);

这是一些示例以展示其工作原理:

var mystr = ("data-123").slice(5); // jast define start point so output is "123"
var mystr = ("data-123").slice(5,7); // define start and end  so output is "12"
var mystr=(",246").slice(1); // returens "246"

演示版


23

普通的旧JavaScript就足够了-jQuery对于这样的简单任务不是必需的:

var myString = "data-123";
var myNewString = myString.replace("data-", "");

有关 其他信息和用法,请参阅:.replace()有关MDN的文档


17

例如:-

var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);

希望这对您有用。


11

我习惯了C#(Sharp)String.Remove方法。在Javascript中,没有用于字符串的remove函数,但是有substr函数。您可以使用substr函数一次或两次从字符串中删除字符。您可以执行以下函数来删除字符串的开始索引处到字符串末尾的字符,就像c#方法的第一个重载String.Remove(int startIndex)一样:

function Remove(str, startIndex) {
    return str.substr(0, startIndex);
}

和/或您还可以使以下函数删除起始索引和计数处的字符,就像c#方法第二次重载String.Remove(int startIndex,int count)一样:

function Remove(str, startIndex, count) {
    return str.substr(0, startIndex) + str.substr(startIndex + count);
}

然后您可以使用这两个功能或其中之一来满足您的需要!

例:

alert(Remove("data-123", 0, 5));

输出:123


9

我做的这个小功能一直对我有用:)

String.prototype.deleteWord = function (searchTerm) {
    var str = this;
    var n = str.search(searchTerm);
    while (str.search(searchTerm) > -1) {
        n = str.search(searchTerm);
        str = str.substring(0, n) + str.substring(n + searchTerm.length, str.length);
    }
    return str;
}

// Use it like this:
var string = "text is the the cool!!";
string.deleteWord('the'); // Returns text is cool!!

我知道这不是最好的方法,但是它一直对我有用:)


您在答案中显示了字符串的替换功能或多或少是如何工作的,但实际上,仅使用字符串的替换功能比您的代码要简单得多!

9
str.split('Yes').join('No'); 

这将替换原始字符串中所有该特定字符串的出现。


8

使用match()Number()返回number变量:

Number(("data-123").match(/\d+$/));

// strNum = 123

这是上面的语句所做的...中间工作:

  1. str.match(/\d+$/)-返回一个数组,该数组包含与末尾的任意长度的数字匹配的匹配项str。在这种情况下,它返回一个包含单个字符串项的数组['123']
  2. Number()-将其转换为数字类型。因为从返回的数组.match()包含单个元素,所以Number()将返回数字。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.