Mic*_*sby 493 javascript string
我有一个data-123有价值的字符串.怎么进入data-或者123我会在data-123离开时从弦中取出data-?
Mat*_*ics 1013
不需要jQuery.
var ret = "data-123".replace('data-','');
console.log(ret); //prints: 123Run Code Online (Sandbox Code Playgroud)
对于要丢弃的所有事件,请使用:
var ret = "data-123".replace(/data-/g,'');
Run Code Online (Sandbox Code Playgroud)
PS:replace函数返回一个新字符串并保持原始字符串不变,因此在replace()调用后使用函数返回值.
Jam*_*son 119
这与jQuery没有任何关系.您可以使用JavaScript replace函数:
var str = "data-123";
str = str.replace("data-", "");
Run Code Online (Sandbox Code Playgroud)
您也可以将正则表达式传递给此函数.在下面的示例中,它将替换除数字之外的所有内容:
str = str.replace(/[^0-9\.]+/g, "");
Run Code Online (Sandbox Code Playgroud)
laa*_*sto 52
"data-123".replace('data-','');如上所述,您可以使用,但replace()只替换匹配文本的FIRST实例,如果您的字符串是那样的"data-123data-"话
"data-123data-".replace('data-','');
Run Code Online (Sandbox Code Playgroud)
只会替换第一个匹配的文本.你的输出将是"123data-"
因此,如果您希望将所有文本匹配替换为字符串,则必须使用带有g标记的正则表达式:
"data-123data-".replace(/data-/g,'');
Run Code Online (Sandbox Code Playgroud)
你的输出将是 "123"
m.r*_*aei 26
你可以使用slice()它在开始到结束之间(包括终点)重新计算字符
string.slice(start , end);
Run Code Online (Sandbox Code Playgroud)
这里有一些exmp来展示它是如何工作的:
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"
Run Code Online (Sandbox Code Playgroud)
小智 22
1-如果是字符串中的序列:
let myString = "mytest-text";
let myNewString = myString.replace("mytest-", "");
Run Code Online (Sandbox Code Playgroud)
答案是文字
2- 如果您想删除前 3 个字符:
"mytest-text".substring(3);
Run Code Online (Sandbox Code Playgroud)
答案是 est-text
Jam*_*ill 21
简单的旧JavaScript就足够了 - 对于这么简单的任务,jQuery不是必需的:
var myString = "data-123";
var myNewString = myString.replace("data-", "");
Run Code Online (Sandbox Code Playgroud)
有关 其他信息和用法,请参阅:.replace()MDN上的文档.
小智 16
例如: -
var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);
Run Code Online (Sandbox Code Playgroud)
希望这对你有用.
小智 9
我习惯了C#(Sharp)String.Remove方法.在Javascript中,字符串没有删除函数,但有substr函数.您可以使用substr函数一次或两次从字符串中删除字符.你可以使用以下函数来删除字符串末尾的起始索引处的字符,就像c#方法首先重载String.Remove(int startIndex):
function Remove(str, startIndex) {
return str.substr(0, startIndex);
}
Run Code Online (Sandbox Code Playgroud)
和/或你也可以使用以下函数来删除start index和count处的字符,就像c#方法第二次重载一样String.Remove(int startIndex,int count):
function Remove(str, startIndex, count) {
return str.substr(0, startIndex) + str.substr(startIndex + count);
}
Run Code Online (Sandbox Code Playgroud)
然后您可以使用这两个功能或其中一个满足您的需求!
例:
alert(Remove("data-123", 0, 5));
Run Code Online (Sandbox Code Playgroud)
输出: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!!
Run Code Online (Sandbox Code Playgroud)
我知道这不是最好的,但它一直对我有用:)
2024 年更新
有很多方法可以解决这个问题,但我相信这是最简单的:
const newString = string.split("data-").pop();
console.log(newString); /// 123
Run Code Online (Sandbox Code Playgroud)
使用match()和Number()返回number变量:
Number(("data-123").match(/\d+$/));
// strNum = 123
Run Code Online (Sandbox Code Playgroud)
以下是上述陈述的内容......中间工作:
str.match(/\d+$/)- 返回一个数组,其中包含与末尾任意长度的数字匹配的数组str.在这种情况下,它返回一个包含单个字符串项的数组['123'].Number() - 将其转换为数字类型.因为从.match()包含单个元素Number()返回的数组将返回该数字.今天 2021.01.14 我在 Chrome v87、Safari v13.1.2 和 Firefox v84 上对 MacOs HighSierra 10.13.6 进行测试,以选择解决方案。
适用于所有浏览器
我执行 2 个测试用例:
下面的片段给出了解决方案 Aa Ab Ba Bb Ca Cb Da Db E F
// https://stackoverflow.com/questions/10398931/how-to-strToRemove-text-from-a-string
// https://stackoverflow.com/a/10398941/860099
function Aa(str,strToRemove) {
return str.replace(strToRemove,'');
}
// https://stackoverflow.com/a/63362111/860099
function Ab(str,strToRemove) {
return str.replaceAll(strToRemove,'');
}
// https://stackoverflow.com/a/23539019/860099
function Ba(str,strToRemove) {
let re = strToRemove.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // regexp escape char
return str.replace(new RegExp(re),'');
}
// https://stackoverflow.com/a/63362111/860099
function Bb(str,strToRemove) {
let re = strToRemove.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // regexp escape char
return str.replaceAll(new RegExp(re,'g'),'');
}
// https://stackoverflow.com/a/27098801/860099
function Ca(str,strToRemove) {
let start = str.indexOf(strToRemove);
return str.slice(0,start) + str.slice(start+strToRemove.length, str.length);
}
// https://stackoverflow.com/a/27098801/860099
function Cb(str,strToRemove) {
let start = str.search(strToRemove);
return str.slice(0,start) + str.slice(start+strToRemove.length, str.length);
}
// https://stackoverflow.com/a/23181792/860099
function Da(str,strToRemove) {
let start = str.indexOf(strToRemove);
return str.substr(0, start) + str.substr(start + strToRemove.length);
}
// https://stackoverflow.com/a/23181792/860099
function Db(str,strToRemove) {
let start = str.search(strToRemove);
return str.substr(0, start) + str.substr(start + strToRemove.length);
}
// https://stackoverflow.com/a/49857431/860099
function E(str,strToRemove) {
return str.split(strToRemove).join('');
}
// https://stackoverflow.com/a/45406624/860099
function F(str,strToRemove) {
var n = str.search(strToRemove);
while (str.search(strToRemove) > -1) {
n = str.search(strToRemove);
str = str.substring(0, n) + str.substring(n + strToRemove.length, str.length);
}
return str;
}
let str = "data-123";
let strToRemove = "data-";
[Aa,Ab,Ba,Bb,Ca,Cb,Da,Db,E,F].map( f=> console.log(`${f.name.padEnd(2,' ')} ${f(str,strToRemove)}`));Run Code Online (Sandbox Code Playgroud)
This shippet only presents functions used in performance tests - it not perform tests itself!Run Code Online (Sandbox Code Playgroud)
以下是 chrome 的示例结果
| 归档时间: |
|
| 查看次数: |
801862 次 |
| 最近记录: |