我得到了一个data-123字符串。
我如何删除数据-从字符串,而离开123?
我得到了一个data-123字符串。
我如何删除数据-从字符串,而离开123?
当前回答
你可以使用"data-123".replace('data-', ");,如前面提到的,但是replace()只替换匹配文本的FIRST实例,如果你的字符串是"data-123data-"那么
"data-123data-".replace('data-','');
只替换第一个匹配的文本。您的输出将是"123data-"
DEMO
所以如果你想在字符串中替换所有匹配的文本,你必须使用一个带有g标志的正则表达式:
"data-123data-".replace(/data-/g,'');
你的输出是"123"
以及接下来
其他回答
如果要替换循环中的字符串,请确保在每次迭代中初始化一个新的Regex。截至9/21/21,这仍然是一个已知的问题,Regex基本上错过了每一个其他匹配。当我第一次遇到这个问题时,我大吃一惊:
yourArray.forEach((string) => {
string.replace(new RegExp(__your_regex__), '___desired_replacement_value___');
})
如果你试着这样做,不要惊讶,如果只有其他所有的工作
let reg = new RegExp('your regex');
yourArray.forEach((string) => {
string.replace(reg, '___desired_replacement_value___');
})
简单的JavaScript就足够了——对于这样一个简单的任务,jQuery是不必要的:
var myString = "data-123";
var myNewString = myString.replace("data-", "");
有关更多信息和用法,请参阅MDN上的.replace()文档。
使用match()和Number()返回一个数字变量:
Number(("data-123").match(/\d+$/));
// strNum = 123
下面是上面这句话的作用……工作中间向外:
str.match(/\d+$/) -返回一个数组,该数组包含str结尾任意长度的数字的匹配。在这种情况下,它返回一个包含单个字符串项['123']的数组。 Number() -将其转换为数字类型。因为从.match()返回的数组包含单个元素Number()将返回该数字。
要做这样的事情,有很多不同的方法。进一步的方法可以如下:
让STR = 'data-123'; STR = STR .split('-')[1]; console.log('剩下的字符串是:\n' + str);
基本上,上面的代码将'-'字符处的字符串拆分为两个数组元素,并获得第二个数组元素,即索引为1的那个,忽略索引为0的第一个数组元素。
以下是一个线性版本:
console.log('剩下的字符串是:\n' + 'data-123'.split('-')[1]);
另一种可能的方法是向String原型添加一个方法,如下所示:
String.prototype.remove = function (s){返回this.replace(s, ")} //之后,它将像这样使用: A = 'ktkhkiksk kiksk ktkhkek kcklkekaknk kmkekskskakakgkekk '; A = A .remove('k'); console.log(一个);
注意,上面的代码片段只允许删除您感兴趣的字符串的第一个实例。但你可以做如下改进:
String.prototype.removeAll = function (s){返回this.replaceAll(s, ")} //之后,它将像这样使用: A = 'ktkhkiksk kiksk ktkhkek kcklkekaknk kmkekskskakakgkekk '; a = a. removeall ('k'); console.log(一个);
上面的代码片段将删除传递给该方法的字符串的所有实例。 当然,你不需要在String对象的原型中实现这些函数:如果你愿意,你也可以将它们作为简单的函数来实现(我将展示remove all函数,对于其他函数,你只需要使用replace而不是replaceAll,所以实现起来很简单):
函数strRemoveAll (s, r) { 返回s.replaceAll (r,”); } //你可以这样使用它: 让a = 'ktkhkiksk kiksk ktkhkek kcklkekaknk kmkekskskakakgkekk ' b = strRemoveAll (a,'k'); console.log (b);
当然,可能性要大得多。
这与jQuery没有任何关系。你可以使用JavaScript的替换函数:
var str = "data-123";
str = str.replace("data-", "");
你也可以给这个函数传递一个正则表达式。在下面的例子中,它将替换除数字以外的所有内容:
str = str.replace(/[^0-9\.]+/g, "");