복붙노트

[JQUERY] JQuery와 선택기 문자열에 특수 문자를 탈출하는 필요

JQUERY

JQuery와 선택기 문자열에 특수 문자를 탈출하는 필요

해결법


  1. 1.당신이 값이 어떤 종류의 작동 무언가를 원하는 경우에,이 시도 :

    당신이 값이 어떤 종류의 작동 무언가를 원하는 경우에,이 시도 :

    var val = $(this).attr('val').replace(/[!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, "\\\\$&")
    

    두 개의 백 슬래시와 jQuery를 문서의 선택기 페이지에있는 모든 CSS 메타 문자를 탈출하여이 작동합니다.

    상황에서,이 같은 까다로운 일을 할 필요가 없습니다 있음을 유의하십시오. 당신은 마티아스 Bynens의 대답에 설명 된대로 값을 탈출하지 않고 주어진 값을 가진 모든 옵션 요소를 선택하는 필터 기능을 사용할 수 있습니다.


  2. 2.CSS 문자 이스케이프 시퀀스 (선택기에 사용) 까다로운 있습니다. 그들은 심지어 어떻게 CSS에서 모든 문자를 탈출하는 방법을 말할 수있는 웹 응용 프로그램을 만든 너무 까다로운 것.

    CSS 문자 이스케이프 시퀀스 (선택기에 사용) 까다로운 있습니다. 그들은 심지어 어떻게 CSS에서 모든 문자를 탈출하는 방법을 말할 수있는 웹 응용 프로그램을 만든 너무 까다로운 것.

    그것은 단순히 모든 옵션 요소를 선택하고 자신의 가치 속성 값에 기반을 필터링하는 것이 훨씬 더 간단하고 효율적입니다 :

    var value = this.value;
    $select.find('option').filter(function() {
      return this.value == value;
    }).show();
    

    그 방법은, 특별한 이스케이프는 전혀 필요하지 않습니다.


  3. 3.이것 좀 봐...

    이것 좀 봐...

    var val = $(this).attr('val').replace(/(\[|\])/g, '\\\\$1'); // something\\[4\\]\\[2\\]
    

    물론, 이것은 단지 특수 문자의 다른하지 브래킷을 처리합니다. 그러나 내 경험에서, 괄호는 내가 사용하는 유일한 사람 (때문에 이와 같은 입력 이름 속성을 처리하는 PHP의 편리한 방법을 : 뭔가 [])


  4. 4.하지만 대답을 늦게,

    하지만 대답을 늦게,

    은 "누락 추가 '에서'옵션 [VALUE = ''+ 발 + '"]

    VAR 브로 = "무언가 [4] [2]"; $ (( '[ "+ 발 +'"= 값 옵션을 ']') 쇼 ( "선택") 찾기)..; 선택권{ 표시 : 없음; } <스크립트 SRC = "https://code.jquery.com/jquery-3.1.0.js"> <선택> <옵션 값 = "무언가 [4] [2]"> 4,2 <옵션 값 = "무언가 [1] [1]"> 1.1

    포장 따옴표없이 - 원래 선택기를 사용하므로 '옵션을 [값을 ='+ 발 + ']

    VAR 브로 = "무언가 [4] [2]"; VAR 당나귀 = $ .escapeSelector (발); // 뭔가 \ [4 \] \ [2 \] $ ( '[= 값 옵션을'+ 당나귀 + ']') 쇼 ( "선택") 찾기 ()..; 선택권{ 표시 : 없음; } <스크립트 SRC = "https://code.jquery.com/jquery-3.1.0.js"> <선택> <옵션 값 = "무언가 [4] [2]"> 4,2 <옵션 값 = "무언가 [1] [1]"> 1.1


  5. 5.jQuery의 자주 묻는 질문 jQuery를가 요구하는 모든 문자를 탈출이을위한 좋은 솔루션을 제공합니다.

    jQuery의 자주 묻는 질문 jQuery를가 요구하는 모든 문자를 탈출이을위한 좋은 솔루션을 제공합니다.

    그들이 뭐라고 제언하는지의 nullsafe 버전과 같은 I :

    function jqid (id) {
      return (!id) ? null : '#' + id.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
    }
    

  6. 6.다음은 가치에 백 슬래시와 따옴표를 탈출해야, 선택기에 속성 값에 따옴표를 넣어 :

    다음은 가치에 백 슬래시와 따옴표를 탈출해야, 선택기에 속성 값에 따옴표를 넣어 :

    var val = $(this).attr('val');
    
    val = val.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
    
    $select.find('option[value="' +  val + '"]').show();
    

    당신은 값이 (귀하의 예제처럼) 백 슬래시 또는 따옴표가없는 것을 알고 있다면, 당신은 가치의 아무것도 탈출 할 필요가 없습니다, 당신은 단지 선택에 따옴표가 필요합니다.


  7. 7.선택기 특수 문자로 끝나는 경우 이중 백 슬래시를 사용하여 벗어날 수 없다. 작업의 arround를 사용 정규식이다 : 선택기 ID가 "보너스 +"인 경우 예를 들어, 당신은 사용할 수 있습니다 :

    선택기 특수 문자로 끝나는 경우 이중 백 슬래시를 사용하여 벗어날 수 없다. 작업의 arround를 사용 정규식이다 : 선택기 ID가 "보너스 +"인 경우 예를 들어, 당신은 사용할 수 있습니다 :

    $("div[id$='bonus+']")
    

    그것은 당신이 동적 선택기가 더 의미가 있습니다.

  8. from https://stackoverflow.com/questions/2786538/need-to-escape-a-special-character-in-a-jquery-selector-string by cc-by-sa and MIT license