ฉันต้องการลบ""สตริงรอบ ๆ
เช่นถ้าสตริงคือแล้วฉันต้องการที่จะส่งออกเท่านั้น"I am here"I am here
str = str.replace(/"/g,"");
                str = str.replace(/^"|"$/g, '');แทนที่คำพูดขอบเขต คำตอบของ Mr_Green จะแทนที่ทั้งหมด"ซึ่งไม่ดีเลย
                ฉันต้องการลบ""สตริงรอบ ๆ
เช่นถ้าสตริงคือแล้วฉันต้องการที่จะส่งออกเท่านั้น"I am here"I am here
str = str.replace(/"/g,"");
                str = str.replace(/^"|"$/g, '');แทนที่คำพูดขอบเขต คำตอบของ Mr_Green จะแทนที่ทั้งหมด"ซึ่งไม่ดีเลย
                คำตอบ:
สมมติว่า:
var someStr = 'He said "Hello, my name is Foo"';
console.log(someStr.replace(/['"]+/g, ''));ที่ควรทำเคล็ดลับ ... (ถ้าเป้าหมายของคุณคือการแทนที่คำพูดสองคำทั้งหมด )
นี่คือวิธีการทำงาน:
['"]เป็นคลาสตัวละครจับคู่ทั้งคำพูดเดี่ยวและคู่ คุณสามารถแทนที่สิ่งนี้ด้วย"เพื่อจับคู่คำพูดคู่เท่านั้น+: เครื่องหมายคำพูดหนึ่งตัวหรือมากกว่าตัวอักษรตามที่กำหนดโดย char-class ก่อนหน้า (ตัวเลือก)g: ธงระดับโลก สิ่งนี้บอกให้ JS ใช้ regex กับสตริงทั้งหมด หากคุณข้ามสิ่งนี้ไปคุณจะแทนที่อักขระตัวเดียวหากคุณพยายามที่จะลบเครื่องหมายคำพูดรอบสตริงที่กำหนด (เช่นเป็นคู่) สิ่งต่าง ๆ จะมีเล่ห์เหลี่ยมมากกว่า คุณจะต้องใช้การยืนยันแบบ lookaround:
var str = 'remove "foo" delimiting double quotes';
console.log(str.replace(/"([^"]+(?="))"/g, '$1'));
//logs remove foo delimiting quotes
str = 'remove only "foo" delimiting "';//note trailing " at the end
console.log(str.replace(/"([^"]+(?="))"/g, '$1'));
//logs remove only foo delimiting "<-- trailing double quote is not removedRegex อธิบายว่า:
": ตัวอักษรตรงกับตัวอักษรใด ๆ "(: เริ่มจับภาพกลุ่ม อะไรก็ตามที่อยู่ระหว่างวงเล็บ ( ()) จะถูกจับและสามารถใช้ในค่าทดแทน[^"]+: คลาสตัวละครจับคู่ตัวอักษรทั้งหมดยกเว้น"1 ครั้งขึ้นไป(?="): zero-width (ไม่ได้อยู่ในการจับ) การยืนยันเชิงบวก lookahead การแข่งขันก่อนหน้านี้จะมีผลก็ต่อเมื่อมันตามด้วย"ตัวอักษร): สิ้นสุดการจับภาพกลุ่มเราได้รวบรวมทุกอย่างไว้ในระหว่างการเปิดปิด "": อีกหนึ่งรายการ cf ที่แท้จริงรายการหนึ่งการแทนที่คือ'$1'นี่เป็นการอ้างอิงย้อนกลับไปยังกลุ่มที่ถูกจับเป็นครั้งแรก[^" ]+หรือทุกครั้งที่อยู่ระหว่างเครื่องหมายคำพูดคู่ รูปแบบนั้นตรงกับทั้งเครื่องหมายคำพูดและสิ่งที่อยู่ในเครื่องหมายคำพูด แต่จะแทนที่ด้วยเครื่องหมายคำพูดและสิ่งที่อยู่ระหว่างเครื่องหมายคำพูดเท่านั้นดังนั้นจึงเป็นการลบอย่างมีประสิทธิภาพ 
อะไรที่มันไม่เป็นsome "string with" quotes-> แทนที่"string with"ด้วย string with-> คำคมหายไปงานเสร็จแล้ว
หากเครื่องหมายคำพูดจะอยู่ที่จุดเริ่มต้นและจุดสิ้นสุดของสตริงเสมอคุณสามารถใช้สิ่งนี้:
str.replace(/^"(.+(?="$))"$/, '$1');ด้วยอินพุตremove "foo" delimiting "เอาต์พุตจะยังคงไม่เปลี่ยนแปลง แต่เปลี่ยนสตริงอินพุตเป็น"remove "foo" delimiting quotes"และคุณจะลงท้ายด้วยremove "foo" delimiting quotesเอาต์พุต
คำอธิบาย:
^": ตรงกับจุดเริ่มต้นของสตริงและ^ "หากสตริงไม่ได้เริ่มต้นด้วย a "นิพจน์จะล้มเหลวที่นี่และไม่มีอะไรถูกแทนที่(.+(?="$)): จับคู่ (และจับ) ทุกอย่างรวมถึงเครื่องหมายคำพูดสองครั้งหนึ่งครั้งขึ้นไปหากมีการมองเชิงบวกจะเป็นจริง(?="$): lookahead เชิงบวกมีค่าเท่ากันกับด้านบนมีเพียงระบุว่า" ต้องเป็นจุดสิ้นสุดของสตริง ( $=== end)"$: ตรงกับเครื่องหมายคำพูดที่สิ้นสุด แต่ไม่จับภาพการแทนที่จะทำในลักษณะเดียวกับก่อนหน้านี้: เราแทนที่การแข่งขัน (ซึ่งรวมถึงการเปิดและปิดราคา) ด้วยทุกอย่างที่อยู่ภายใน 
คุณอาจสังเกตเห็นว่าฉันไม่ได้gตั้งค่าสถานะ (สำหรับ BTW ทั่วโลก) เนื่องจากเรากำลังประมวลผลสตริงทั้งหมดนิพจน์นี้จะใช้เพียงครั้งเดียว 
regex ที่ง่ายกว่านั้นก็เหมือนกัน (มีความแตกต่างภายในของวิธีการรวบรวม / นำไปใช้กับ regex):
someStr.replace(/^"(.+)"$/,'$1');เหมือนก่อน^"และ"$จับคู่เครื่องหมายคำพูดคั่นที่จุดเริ่มต้นและจุดสิ้นสุดของสตริงและ(.+)จับคู่ทุกอย่างในระหว่างและจับมัน ฉันลอง regex นี้ควบคู่ไปกับข้างบน (ด้วยการยืนยันแบบ lookahead) และเป็นที่ยอมรับต่อความประหลาดใจของฉันที่พบว่าอันนี้ช้ากว่าเล็กน้อย ฉันเดาว่าการยืนยันแบบ lookaround ทำให้นิพจน์ก่อนหน้านั้นล้มเหลวทันทีที่เอ็นจิ้นพิจารณาว่าไม่มี"ที่ส่วนท้ายของสตริง อ่า แต่ถ้านี่คือสิ่งที่คุณต้องการ / ต้องการโปรดอ่านต่อไป :
อย่างไรก็ตามในกรณีนี้มันปลอดภัยกว่าเร็วกว่าดูแลรักษาได้มากกว่าและทำได้ดีกว่า:
if (str.charAt(0) === '"' && str.charAt(str.length -1) === '"')
{
    console.log(str.substr(1,str.length -2));
}ที่นี่ฉันกำลังตรวจสอบว่าอักขระตัวแรกและตัวสุดท้ายในสตริงเป็นเครื่องหมายคำพูดคู่หรือไม่ หากเป็นเช่นนั้นฉันใช้substrเพื่อตัดตัวอักษรแรกและตัวสุดท้าย charAt(str.length -1)สตริงจะเป็นศูนย์การจัดทำดัชนีเพื่อให้ถ่านสุดท้ายคือ substrต้องการอาร์กิวเมนต์ 2 ตัวโดยที่ตัวแรกคืออ็อฟเซ็ตที่ซับสตริงเริ่มทำงานตัวที่สองคือความยาว str.length - 2เนื่องจากเราไม่ต้องการถ่านที่ผ่านมาอีกต่อไปกว่าที่เราต้องการเป็นครั้งแรกที่มีความยาว Easy-peazy
เคล็ดลับ :
ข้อมูลเพิ่มเติมเกี่ยวกับการมองหาการยืนยันสามารถพบได้ที่นี่
 
Regex มีประโยชน์มาก (และ IMO สนุก) สามารถทำให้งุนงงเล็กน้อยในตอนแรก นี่คือรายละเอียดเพิ่มเติมและลิงก์ไปยังแหล่งข้อมูลเกี่ยวกับเรื่องนี้ 
หากคุณยังไม่สะดวกที่จะใช้ regex คุณอาจต้องพิจารณาใช้:
var noQuotes = someStr.split('"').join('');หากมีคำพูดมากมายในสตริงสิ่งนี้อาจเร็วกว่าการใช้ regex
str = str.replace(/^"(.*)"$/, '$1');regexp นี้จะลบเครื่องหมายคำพูดหากพวกเขาเป็นตัวอักษรตัวแรกและตัวสุดท้ายของสตริง F.ex:
"I am here"  => I am here (replaced)
I "am" here  => I "am" here (untouched)
I am here"   => I am here" (untouched)หากรับประกันว่าสตริงจะมีเครื่องหมายคำพูดหนึ่งตัว (หรืออักขระอื่นใดก็ได้) ที่จุดเริ่มต้นและจุดสิ้นสุดที่คุณต้องการลบ:
str = str.slice(1, -1);slice มีค่าใช้จ่ายน้อยกว่านิพจน์ทั่วไปมาก
<uri>และตัวอักษรเหมือน"literal") ดังนั้นนี่คือ upvote ;)
                    หากคุณสามารถควบคุมข้อมูลของคุณและคุณรู้ว่าอัญประกาศคู่ของคุณล้อมรอบสตริง (ดังนั้นจะไม่ปรากฏในสตริง) และสตริงเป็นจำนวนเต็ม ... พูดด้วย:
"20151212211647278"หรือคล้ายกันนี้เอาคำพูดโดยรอบ
JSON.parse("20151212211647278");ไม่ใช่คำตอบสากล แต่ลื่นสำหรับความต้องการเฉพาะ
JSON.parse("20151212211647278dfvs"); SyntaxError: Unexpected token d in JSON at position 17
                    หากคุณต้องการลบเครื่องหมายคำพูดในขอบเขต:
function stripquotes(a) {
    if (a.charAt(0) === '"' && a.charAt(a.length-1) === '"') {
        return a.substr(1, a.length-2);
    }
    return a;
}"text in quotes"วิธีการนี้จะไม่ได้สัมผัสสตริงถ้ามันไม่ได้มีลักษณะเหมือน
a.charAt(x)ถ้าคุณต้องการการสนับสนุน <ECMA5 (f.ex IE7)
                    เมื่อต้องการแก้ไขปัญหาของคุณในแบบที่แสดงเป็นนิพจน์ปกติได้ง่ายขึ้น:
รับสตริงย่อยของตัวละครที่มีอยู่ระหว่างศูนย์หรือหนึ่งคู่อัญประกาศชั้นนำและศูนย์หรือหนึ่งหรือสองคำพูดต่อท้าย
นี่คือ regexp ที่ทำเช่นนั้น:
  var regexp = /^"?(.+?)"?$/;
  var newStr = str.replace(/^"?(.+?)"?$/,'$1');ทำลาย regexp:
^"? การแข่งขันโลภสำหรับศูนย์หรือหนึ่งคำพูดที่นำสอง"?$ การแข่งขันโลภสำหรับศูนย์หรือหนึ่งคำพูดต่อท้ายคู่(.+?)$1สิ่งนี้จะส่งคืนdelimited "string" hereสำหรับ:
str = "delimited "string" here"  // ...
str = '"delimited "string" here"' // ...
str = 'delimited "string" here"' // ... and
str = '"delimited "string" here'มันใช้งานได้ ...
var string1 = "'foo'";
var string2 = '"bar"';
function removeFirstAndLastQuotes(str){
  var firstChar = str.charAt(0);
  var lastChar = str[str.length -1];
  //double quotes
  if(firstChar && lastChar === String.fromCharCode(34)){
    str = str.slice(1, -1);
  }
  //single quotes
  if(firstChar && lastChar === String.fromCharCode(39)){
    str = str.slice(1, -1);
  }
  return str;
}
console.log(removeFirstAndLastQuotes(string1));
console.log(removeFirstAndLastQuotes(string2));'foo"หรือเพียงfoo"
                    var expressionWithoutQuotes = '';
for(var i =0; i<length;i++){
    if(expressionDiv.charAt(i) != '"'){
        expressionWithoutQuotes += expressionDiv.charAt(i);
    }
}สิ่งนี้อาจใช้ได้ผลสำหรับคุณ
หากคุณต้องการลบอัญประกาศคู่ทั้งหมดในสตริงให้ใช้
var str = '"some "quoted" string"';
console.log( str.replace(/"/g, '') );
// some quoted stringมิฉะนั้นคุณต้องการลบเฉพาะเครื่องหมายคำพูดรอบสตริงใช้:
var str = '"some "quoted" string"';
console.log( clean = str.replace(/^"|"$/g, '') );
// some "quoted" stringรหัสง่าย ๆ นี้ยังสามารถใช้งานได้เช่นกันเมื่อต้องการลบเครื่องหมายคำพูดคู่จากสตริงที่ล้อมรอบด้วยเครื่องหมายคำพูดคู่:
var str = 'remove "foo" delimiting double quotes';
console.log(str.replace(/"(.+)"/g, '$1'));หากคุณพยายามที่จะลบเครื่องหมายคำพูดคู่ลองต่อไปนี้
  var Stringstr = "\"I am here\"";
  var mystring = String(Stringstr);
  mystring = mystring.substring(1, mystring.length - 1);
  alert(mystring);รหัสนี้ดีมากสำหรับหมายเลขแสดงในกล่องข้อความ
$ (this) = [กล่องข้อความของคุณ]
            var number = $(this).val();
            number = number.replace(/[',]+/g, '');
            number = number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
            $(this).val(number); // "1,234,567,890"โปรดลองติดตาม regex เพื่อลบเครื่องหมายคำพูดคู่ออกจากสตริง
    $string = "I am here";
    $string =~ tr/"//d;
    print $string;
    exit();