ฉันมีdata-123
สตริง
ฉันจะลบออกdata-
จากสายอักขระในขณะที่ออกจากได้123
อย่างไร
ฉันมีdata-123
สตริง
ฉันจะลบออกdata-
จากสายอักขระในขณะที่ออกจากได้123
อย่างไร
คำตอบ:
var ret = "data-123".replace('data-','');
console.log(ret); //prints: 123
สำหรับการใช้งานทั้งหมดที่เกิดขึ้นจะถูกยกเลิก:
var ret = "data-123".replace(/data-/g,'');
PS: ฟังก์ชั่นแทนที่จะส่งกลับสตริงใหม่และปล่อยให้สตริงเดิมไม่เปลี่ยนแปลงดังนั้นใช้ค่าส่งคืนฟังก์ชั่นหลังจากการเรียกแทนที่ ()
สิ่งนี้ไม่มีอะไรเกี่ยวข้องกับ jQuery คุณสามารถใช้replace
ฟังก์ชันJavaScript สำหรับสิ่งนี้:
var str = "data-123";
str = str.replace("data-", "");
คุณสามารถส่ง regex ไปยังฟังก์ชันนี้ได้ ในตัวอย่างต่อไปนี้มันจะแทนที่ทุกอย่างยกเว้นตัวเลข:
str = str.replace(/[^0-9\.]+/g, "");
0-9
ระบุไว้
คุณสามารถใช้"data-123".replace('data-','');
ตามที่กล่าวถึง แต่replace()
จะแทนที่อินสแตนซ์แรกของข้อความที่ตรงกันเท่านั้นถ้าสตริงของคุณเป็นอะไรเช่น"data-123data-"
นั้น
"data-123data-".replace('data-','');
จะแทนที่ข้อความที่ตรงกันแรกเท่านั้น และผลลัพธ์ของคุณจะเป็น"123data-"
ดังนั้นหากคุณต้องการแทนที่ข้อความทั้งหมดที่ตรงกันในสตริงคุณจะต้องใช้การแสดงออกปกติกับg
ธงดังนี้:
"data-123data-".replace(/data-/g,'');
และผลลัพธ์ของคุณจะเป็น "123"
คุณสามารถใช้ชิ้น () มัน returens charcters ระหว่างเริ่มต้นถึงจุดสิ้นสุด (รวมถึงจุดสิ้นสุด)
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"
JavaScript แบบธรรมดาธรรมดาจะพอเพียง - jQuery ไม่จำเป็นสำหรับงานง่ายๆดังกล่าว:
var myString = "data-123";
var myNewString = myString.replace("data-", "");
ดู: .replace()
เอกสารบน MDNสำหรับข้อมูลเพิ่มเติมและการใช้งาน
Ex: -
var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);
หวังว่านี่จะใช้ได้ผลสำหรับคุณ
ฉันเคยชินกับวิธี C. (ชาร์ป) String.Remove ใน Javascript ไม่มีฟังก์ชั่นลบสำหรับสตริง แต่มีฟังก์ชั่น substr คุณสามารถใช้ฟังก์ชัน substr หนึ่งหรือสองครั้งเพื่อลบอักขระออกจากสตริง คุณสามารถสร้างฟังก์ชั่นต่อไปนี้เพื่อลบตัวอักษรที่ดัชนีเริ่มต้นไปจนถึงจุดสิ้นสุดของสตริงเช่นเดียวกับวิธี c # ก่อนโอเวอร์โหลดสตริง String.Remove (int startIndex):
function Remove(str, startIndex) {
return str.substr(0, startIndex);
}
และ / หรือคุณสามารถสร้างฟังก์ชั่นต่อไปนี้เพื่อลบตัวอักษรที่ดัชนีเริ่มต้นและการนับเช่นเดียวกับ c # method ที่สองเกินพิกัด 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
ฟังก์ชั่นเล็ก ๆ น้อย ๆ ที่ฉันทำใช้ได้กับฉันเสมอ :)
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!!
ฉันรู้ว่ามันไม่ได้ดีที่สุด แต่มันได้ผลกับฉันเสมอ :)
str.split('Yes').join('No');
สิ่งนี้จะแทนที่การเกิดขึ้นทั้งหมดของสตริงเฉพาะนั้นจากสตริงเดิม
การใช้match()
และNumber()
เพื่อคืนnumber
ค่าตัวแปร:
Number(("data-123").match(/\d+$/));
// strNum = 123
นี่คือสิ่งที่คำสั่งข้างต้นทำ ... กำลังทำงานกลางคัน:
str.match(/\d+$/)
- ส่งกลับอาร์เรย์ที่มีการแข่งขันกับความยาวของตัวเลขใด ๆ str
ในตอนท้ายของ ['123']
ในกรณีนี้ก็จะส่งกลับอาร์เรย์ที่มีรายการสายเดียวNumber()
- แปลงเป็นประเภทตัวเลข เนื่องจากอาร์เรย์ที่ส่งคืนจาก.match()
ประกอบด้วยองค์ประกอบเดียวNumber()
จะส่งคืนตัวเลข