วิธีการสตริงย่อยใน jquery


115

ฉันจะใช้ jquery ในฝั่งไคลเอ็นต์เพื่อสร้างสตริงย่อย "nameGorge" และลบ "name" ออกได้อย่างไรจึงจะแสดงผลเป็นเพียง "Gorge" ได้อย่างไร

var name = "nameGorge"; //output Gorge

15
jQuery เป็นไลบรารีที่เขียนด้วย JavaScript ใช้กับ JavaScript สิ่งที่คุณกำลังถามสามารถทำได้ใน JavaScript โดยไม่จำเป็นต้องใช้ไลบรารี jQuery เลย
Jeff

1
jQuery IS JavaScript (ไลบรารี JavaScript จะถูกต้อง แต่เป็น JavaScript) ดังที่ได้กล่าวไปแล้วฉันไม่คิดว่าการใช้ jQuery เพื่อรับสตริงย่อยจะสามารถเขียนได้ง่ายกว่าที่เป็นอยู่ใน JavaScript โดยตรง
VoidKing

คำตอบ:


235

ไม่จำเป็นต้องใช้ jQuery! เพียงใช้วิธีการสตริงย่อย:

var gorge = name.substring(4);

หรือถ้าข้อความที่คุณต้องการลบไม่คงที่:

var name = 'nameGorge';
var toRemove = 'name';
var gorge = name.replace(toRemove,'');

5
ขอโทษนะไม่ได้คาดหวังว่ามันจะระเบิดแรงขนาดนี้หลังจากที่ฉันเข้านอน ฉันทำความสะอาดที่นี่นิดหน่อย ในขณะเดียวกันใครบางคนต้องอ่านสิ่งนี้
BoltClock

เฮ้ BoltClock: คุณเป็นอย่างไรบ้าง? ฉันพยายามพิสูจน์ประเด็นที่นี่ขอบคุณมาก .. นั่นหมายความว่าถ้าฉันพยายามปรับปรุงรหัสสำหรับลูกค้าและฉันมาที่นี่เพื่อหาคำตอบและคำตอบที่ทำเครื่องหมายของหน่วยงานนั้นเป็นที่พอใจสำหรับเขา จากนั้นฉันไม่สามารถโพสต์คำถามเดียวกันหรือยกตัวอย่างปัญหาของฉันได้ .. น่าสนใจมาก .. ดังนั้นคำถามของฉันก็เหมือนกับว่าคนพวกนี้แน่ใจได้อย่างไรว่าถ้าฉันใช้ฟังก์ชัน jQuery และภายในฉันใช้. แยกฉันเป็น อ้างถึงวิธี JS ดั้งเดิมหรือการสร้างอุโมงค์หรือพร็อกซีบางประเภทเพื่อทริกเกอร์สิ่งนั้นผ่าน jQuery นอกจากนี้หากคุณอ่านคำถาม
Jean Paul AKA el_vete

ประเด็นของฉันคือสำหรับฉันกำลังทำงานภายในเนมสเปซ jQuery ฉันไม่สนใจมากนักถ้ากรณีนั้นคือการโทรโดยตรง string.split จาก JS แต่จากชุมชนฉันเข้าใจว่าถ้าฉันโพสต์คำถามที่แน่นอนนั้น มันจะถูกทำเครื่องหมายว่าแคบลงเนื่องจากคำตอบนี้ได้รับการยอมรับมากกว่าข้อเท็จจริงที่ว่ามีเอกสารอ้างอิง jQuery.split อยู่ที่ไหนสักแห่งสำหรับฉันอย่างน้อยก็บอกฉันว่ามันควรจะเป็นเพราะมันอยู่ที่นั่นโดยไม่ให้ความขัดแย้งกับรหัสของฉันและ jQuery ทั้งหมด ปลั๊กอินที่อยู่ในรูปภาพที่ถูกลบคุณสามารถดูได้ ... ขอบคุณอีกครั้ง
Jean Paul AKA el_vete

5
@JeanPaul - jQuery ไม่มีการแยก () เราเคยผ่านมาแล้ว บทความทั้งสองที่คุณเชื่อมโยงกับข้อความที่ใช้ก่อนหน้านี้ () เพื่อรับสตริงวานิลลา JavaScript จากนั้นเรียกว่า string.split () คุณผิดธรรมดาในกรณีนี้ วางมันลง.
Justin Niessner

52

การใช้.split(). (เวอร์ชันที่สองใช้.slice()และ.join()ใน Array)

var result = name.split('name')[1];
var result = name.split('name').slice( 1 ).join(''); // May be a little safer

การใช้.replace().

var result = name.replace('name','');

ใช้.slice()กับสตริง

var result = name.slice( 4 );

jquery ไม่รองรับการแทนที่ นี่คือ Vanilla js
Jude


9

นั่นเป็นเพียง JavaScript ธรรมดา: ดูsubstringและsubstr.


1
slice()หรืออันที่จริง Strange JS ควรมีหลายวิธีในการพูดสิ่งเดียวกันแตกต่างกันอย่างละเอียด slice()เป็นวิธีที่ฉันต้องการเนื่องจากทำงานอย่างสม่ำเสมอกับslice()อาร์เรย์และอนุญาตให้มีดัชนีเริ่มต้นและจุดสิ้นสุดที่เป็นลบสำหรับดัชนีจากจุดสิ้นสุด
bobince

@bobince: จริงและฉันไม่เคยจำว่าพารามิเตอร์ใดsubstringและsubstrใช้ความยาวใดและใช้ดัชนีสิ้นสุด - ฉันจำเป็นต้องค้นหาเอกสารเสมอเพื่อค้นหา
คาซาบลังกา

4

คุณไม่จำเป็นต้องใช้ jquery เพื่อที่จะทำเช่นนั้น

var placeHolder="name";
var res=name.substr(name.indexOf(placeHolder) + placeHolder.length);

ฉันต้องทำในฝั่งไคลเอ็นต์และฉันมี jquery อยู่แล้ว คุณกำลังแนะนำอะไร ขออภัยสำหรับคำถามง่ายๆ แต่ฉันค่อนข้างเป็นมือใหม่กับ js และ jquery
ช่องเขา

คำสั่งนั้นจะส่งคืน "nameGorge" เนื่องจาก indexOf ("name") จะคืนค่า 0
Justin Niessner

2
var name = "nameGorge";
name.match(/[A-Z].*/)[0]

0

ใช่คุณทำได้แม้ว่าจะต้องอาศัยฟังก์ชันการทำงานโดยธรรมชาติของ Javascript ไม่ใช่ไลบรารี jQuery

http://www.w3schools.com/jsref/jsref_substr.aspsubstrฟังก์ชั่นที่จะช่วยให้คุณสามารถดึงบางส่วนของสตริง

ตอนนี้หากคุณกำลังมองหาสตริงหรืออักขระเฉพาะเพื่อใช้ในการค้นหาว่าจะดึงส่วนใดของสตริงออกมาคุณสามารถใช้ประโยชน์จากฟังก์ชัน indexOf ได้เช่นกัน http://www.w3schools.com/jsref/jsref_IndexOf.asp

คำถามค่อนข้างคลุมเครือ; แม้เพียงแค่เชื่อมโยงข้อความที่มี 'ชื่อ' ก็จะได้ผลลัพธ์ที่ต้องการ เกณฑ์ในการรับสตริงย่อยของคุณคืออะไร?


1
เหตุใดคุณจึงเชื่อมโยงกับstrposฟังก์ชันของ PHP ในคำถามเกี่ยวกับ JavaScript
คาซาบลังกา

คุณพูดถูกวันนี้ PHP มากเกินไปสำหรับฉัน ฉันแก้ไขด้วย JS เทียบเท่าที่เหมาะสม ขอบคุณที่ติดตาม
aaronofleonard

-1

ต่อไปนี้เป็นอย่างไร?

<script charset='utf-8' type='text/javascript'>
  jQuery(function($) { var a=$; a.noConflict();
    //assumming that you are using an input text 
    //  element with the text "nameGorge"
    var itext_target = a("input[type='text']:contains('nameGorge')");
    //gives the second part of the split which is 'Gorge'
    itext_target.html().split("nameGorge")[1];
    ...
  });
</script>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.