อะไรจะเป็นวิธีที่สะอาดที่สุดในการทำสิ่งนี้ซึ่งจะใช้ได้ทั้งใน IE และ Firefox
สตริงของฉันมีลักษณะดังนี้: someext-20202
ตอนนี้ 'someext' และจำนวนเต็มหลังจากเส้นประอาจมีความยาวต่างกัน
ฉันควรใช้สตริงย่อยและดัชนีของหรือเป็นวิธีอื่นหรือไม่
อะไรจะเป็นวิธีที่สะอาดที่สุดในการทำสิ่งนี้ซึ่งจะใช้ได้ทั้งใน IE และ Firefox
สตริงของฉันมีลักษณะดังนี้: someext-20202
ตอนนี้ 'someext' และจำนวนเต็มหลังจากเส้นประอาจมีความยาวต่างกัน
ฉันควรใช้สตริงย่อยและดัชนีของหรือเป็นวิธีอื่นหรือไม่
คำตอบ:
ฉันจะทำสิ่งนี้อย่างไร:
// function you can use:
function getSecondPart(str) {
return str.split('-')[1];
}
// use the function:
alert(getSecondPart("sometext-20202"));
get everything after the dash in a string in javascriptในกรณีนี้จะล้มเหลว
ทางออกที่ฉันต้องการคือ:
const str = 'sometext-20202';
const slug = str.split('-').pop();
slugผลลัพธ์ของคุณจะอยู่ที่ไหน
var the_string = "sometext-20202";
var parts = the_string.split('-', 2);
// After calling split(), 'parts' is an array with two elements:
// parts[0] is 'sometext'
// parts[1] is '20202'
var the_text = parts[0];
var the_num = parts[1];
var testStr = "sometext-20202"
var splitStr = testStr.substring(testStr.indexOf('-') + 1);
AFAIK ทั้งสองsubstring()และindexOf()รองรับทั้ง Mozilla และ IE อย่างไรก็ตามโปรดทราบว่า substr () อาจไม่รองรับเบราว์เซอร์บางรุ่นก่อนหน้านี้ (โดยเฉพาะ Netscape / Opera)
โพสต์ของคุณบ่งบอกว่าคุณรู้อยู่แล้วว่าวิธีการทำมันใช้substring()และindexOf()ดังนั้นฉันไม่ได้โพสต์ตัวอย่างรหัส
คุณสามารถทำได้ด้วย RegExp ในตัว (รูปแบบ [, แฟล็ก]]) เครื่องหมายโรงงานใน js ดังนี้:
RegExp(/-(.*)/).exec("sometext-20202")[1]
ในฟังก์ชั่นโค้ด exec ด้านบนจะส่งคืนอาเรย์ที่มีสององค์ประกอบ (["-20202", "20202"]) อันที่มียัติภังค์ (-20202) และอีกอันที่ไม่มียัติภังค์ (20202) คุณควรเลือกองค์ประกอบที่สอง (ดัชนี 1)
myString.split('-').splice(1).join('-')
myString.split('-').splice(-1).join('-')
sometext-20202-303?