ฉันมี
var id="ctl03_Tabs1";
ใช้ JavaScript ฉันจะได้อักขระห้าตัวสุดท้ายหรือตัวอักขระสุดท้ายได้อย่างไร
ฉันมี
var id="ctl03_Tabs1";
ใช้ JavaScript ฉันจะได้อักขระห้าตัวสุดท้ายหรือตัวอักขระสุดท้ายได้อย่างไร
คำตอบ:
แก้ไข: เป็นคนอื่นได้ชี้ออกใช้แทนslice(-5)
substr
อย่างไรก็ตามดู.split().pop()
วิธีแก้ปัญหาที่ด้านล่างของคำตอบนี้สำหรับวิธีการอื่น
คำตอบเดิม:
คุณจะต้องใช้วิธีการสตริง Javascript .substr()
รวมกับ.length
คุณสมบัติ
var id = "ctl03_Tabs1";
var lastFive = id.substr(id.length - 5); // => "Tabs1"
var lastChar = id.substr(id.length - 1); // => "1"
สิ่งนี้ทำให้อักขระเริ่มต้นที่ id.length - 5 และเนื่องจากอาร์กิวเมนต์ที่สองสำหรับ. substr () ถูกตัดออกไปจนถึงจุดสิ้นสุดของสตริง
คุณสามารถใช้.slice()
วิธีการตามที่คนอื่น ๆ ได้ระบุไว้ด้านล่าง
หากคุณเพียงแค่มองหาตัวละครหลังเครื่องหมายขีดล่างคุณสามารถใช้สิ่งนี้:
var tabId = id.split("_").pop(); // => "Tabs1"
สิ่งนี้จะแยกสตริงออกเป็นอาร์เรย์บนเครื่องหมายขีดล่างจากนั้น "ปรากฏ" องค์ประกอบสุดท้ายออกจากอาร์เรย์ (ซึ่งเป็นสตริงที่คุณต้องการ)
.split().pop()
ถือว่าเป็นประสิทธิภาพที่ยอดเยี่ยม หากนี่คือสิ่งที่คุณใช้ในการวนซ้ำและประสิทธิภาพเป็นสิ่งสำคัญคุณจะต้องคำนึงถึงเรื่องนี้เสมอ
.split().pop()
ยังคงมีการดำเนินงาน 5 ล้านต่อวินาที มันไม่ใช่ปัญหาด้านประสิทธิภาพจนกว่าจะเป็นปัญหาด้านประสิทธิภาพ ;)
slice
เป็นตัวเลือกที่ดีกว่าในตอนนี้
slice
หรือsubstr
เป็นตัวเลข (int) ให้แปลงเป็นสตริงก่อน เช่นmyVar.toString().slice(-5)
.substr()
อย่าใช้ ใช้.slice()
วิธีนี้แทนเพราะใช้งานร่วมกับเบราว์เซอร์ข้าม (ดู IE)
const id = "ctl03_Tabs1";
console.log(id.slice(id.length - 5)); //Outputs: Tabs1
console.log(id.slice(id.length - 1)); //Outputs: 1
slice()
การอ้างอิง: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/
_Tabs15
อะไร? ชิ้น (-5) จะคว้าเท่านั้นabs15
? แยก / ป๊อปผลงานที่ดีกว่าสำหรับความยาวแตกต่างกัน ...
คุณสามารถใช้เมธอด substr ()กับตำแหน่งเริ่มต้นเชิงลบเพื่อดึงอักขระ n ตัวสุดท้าย ตัวอย่างเช่นสิ่งนี้ได้รับ 5 ครั้งล่าสุด:
var lastFiveChars = id.substr(-5);
การรับอักขระตัวสุดท้ายนั้นเป็นเรื่องง่ายเนื่องจากคุณสามารถใช้สตริงเป็นอาร์เรย์ได้:
var lastChar = id[id.length - 1];
ในการรับส่วนของสตริงคุณสามารถใช้ฟังก์ชันsubstrหรือฟังก์ชันsubstring :
id.substr(id.length - 1); //get the last character
id.substr(2); //get the characters from the 3rd character on
id.substr(2, 1); //get the 3rd character
id.substr(2, 2); //get the 3rd and 4th characters
ความแตกต่างระหว่างsubstr
และsubstring
เป็นวิธีที่พารามิเตอร์ที่สอง (ไม่จำเป็น) ได้รับการปฏิบัติ ในsubstr
คือจำนวนอักขระจากดัชนี (พารามิเตอร์แรก) ในsubstring
มันเป็นดัชนีของการแบ่งตัวละครที่ควรจะจบ
สคริปต์ต่อไปนี้จะแสดงผลลัพธ์เพื่อรับ 5 อักขระสุดท้ายและ 1 อักขระสุดท้ายในสตริงโดยใช้ JavaScript:
var testword='ctl03_Tabs1';
var last5=testword.substr(-5); //Get 5 characters
var last1=testword.substr(-1); //Get 1 character
ผลผลิต:
Tabs1 // มี 5 ตัวอักษร
1 // มี 1 ตัวอักษร
ไม่จำเป็นต้องใช้substr
วิธีในการรับอักขระเดี่ยวของสตริง!
จากตัวอย่างของ Jamon Holmgren เราสามารถเปลี่ยนวิธี substr และเพียงแค่ระบุตำแหน่งของอาร์เรย์:
var id = "ctl03_Tabs1";
var lastChar = id[id.length - 1]; // => "1"
ฟังก์ชั่น Substr ให้คุณใช้เครื่องหมายลบเพื่อรับอักขระตัวสุดท้าย
var string = "hello";
var last = string.substr(-1);
มันยืดหยุ่นมาก ตัวอย่างเช่น:
// Get 2 characters, 1 character from end
// The first part says how many characters
// to go back and the second says how many
// to go forward. If you don't say how many
// to go forward it will include everything
var string = "hello!";
var lasttwo = string.substr(-3,2);
// = "lo"
วิธีหนึ่งจะใช้slice
เช่นทำตาม:
var id="ctl03_Tabs1";
var temp=id.slice(-5);
ดังนั้นค่าของจะtemp
"Tabs1"
หากคุณต้องการตัวละครตัวสุดท้ายหรือตัวละครใด ๆ ที่รู้ตำแหน่งคุณสามารถเพียงแค่สตริง trat เป็นอาร์เรย์! - สตริงสามารถวนซ้ำได้ใน javascript -
Var x = "hello_world";
x[0]; //h
x[x.length-1]; //d
แต่ถ้าคุณต้องการตัวละครมากกว่าหนึ่งตัวก็ให้ใช้การต่อกันอย่างมีประสิทธิภาพ
x.slice(-5); //world
เกี่ยวกับตัวอย่างของคุณ
"rating_element-<?php echo $id?>"
ในการแยก id คุณสามารถใช้ split + pop ได้อย่างง่ายดาย
Id= inputId.split('rating_element-')[1];
นี่จะส่งคืนรหัสหรือไม่ได้กำหนดหากไม่มีรหัสหลังจาก 'rating_element' :)
สมมติว่าคุณจะเปรียบเทียบสตริงย่อยกับจุดสิ้นสุดของสตริงอื่นและใช้ผลลัพธ์เป็นบูลีนคุณอาจขยายคลาส String เพื่อทำสิ่งนี้:
String.prototype.endsWith = function (substring) {
if(substring.length > this.length) return false;
return this.substr(this.length - substring.length) === substring;
};
ให้คุณทำสิ่งต่อไปนี้:
var aSentenceToPonder = "This sentence ends with toad";
var frogString = "frog";
var toadString = "toad";
aSentenceToPonder.endsWith(frogString) // false
aSentenceToPonder.endsWith(toadString) // true
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1);
ฉันพบคำถามนี้และจากการวิจัยบางอย่างฉันพบว่านี่เป็นวิธีที่ง่ายที่สุดในการรับตัวละครตัวสุดท้าย
ตามที่คนอื่น ๆ ได้กล่าวถึงและเพิ่มเพื่อความสมบูรณ์ในการรับ 5 ครั้งล่าสุด:
var last5 = id.substr(-5);
อันนี้จะลบเครื่องหมายจุลภาคถ้ามันเป็นตัวละครตัวสุดท้ายในสตริง ..
var str = $("#ControlId").val();
if(str.substring(str.length-1)==',') {
var stringWithoutLastComma = str.substring(0,str.length-1);
}
ที่จริงฉันมีปัญหาต่อไปนี้และวิธีนี้ฉันแก้ไขได้โดยความช่วยเหลือของคำตอบข้างต้น แต่วิธีการที่แตกต่างกันในการแยกรูปแบบ id เป็นองค์ประกอบอินพุต
ฉันได้แนบไฟล์ที่ยื่นด้วย
id="rating_element-<?php echo $id?>"
และเมื่อคลิกปุ่มนั้นฉันต้องการแยก id (ซึ่งคือตัวเลข) หรือ php ID ($ id)เท่านั้น
ดังนั้นนี่คือสิ่งที่ฉันทำ
$('.rating').on('rating.change', function() {
alert($(this).val());
// console.log(this.id);
var static_id_text=("rating_element-").length;
var product_id = this.id.slice(static_id_text); //get the length in order to deduct from the whole string
console.log(product_id );//outputs the last id appended
});
5 สุดท้าย
var id="ctl03_Tabs1";
var res = id.charAt(id.length-5)
alert(res);
ล่าสุด
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1)
alert(res);
charAt
substr
ที่charAt
ได้รับห้าจากที่ผ่านมา
ฉันแน่ใจว่าจะใช้งานได้ ....
var string1="myfile.pdf"
var esxtenion=string1.substr(string1.length-4)
ค่าของextension
จะเป็น".pdf"