ฉันพยายามหาตำแหน่งของสตริงที่เกิดขึ้นทั้งหมดในสตริงอื่นโดยไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่
ตัวอย่างเช่นกำหนดสตริง:
ฉันเรียนรู้การเล่นอูคูเลเล่ในเลบานอน
และสตริงการค้นหาle
ฉันต้องการรับอาร์เรย์:
[2, 25, 27, 33]
สตริงทั้งสองจะเป็นตัวแปรนั่นคือฉันไม่สามารถฮาร์ดโค้ดค่าของมันได้
ฉันคิดว่านี่เป็นงานง่ายสำหรับนิพจน์ทั่วไป แต่หลังจากพยายามดิ้นรนสักพักเพื่อหาสิ่งที่ใช้ได้ผลฉันก็ไม่มีโชค
ฉันพบตัวอย่างวิธีการใช้งานนี้ให้สำเร็จ.indexOf()
แต่ต้องมีวิธีที่รัดกุมกว่านี้ใช่ไหม
le
เป็นสตริงตัวแปรที่นี่? แม้ว่าจะมีการใช้new Regexp(str);
อักขระพิเศษที่มีอันตรายแฝงตัวอยู่$2.50
ก็ตาม สิ่งที่ต้องการregex = new Regexp(dynamicstring.replace(/([\\.+*?\\[^\\]$(){}=!<>|:])/g, '\\$1'));
จะใกล้ชิดกับ IMHO มากขึ้น ฉันไม่แน่ใจว่า js มีกลไกการหลีกเลี่ยง regex ในตัวหรือไม่