>source

배열 요소의 목록을 기반으로 단어/문장에서 일치하는 문자를 특정 문자로 변경하기 위해 HTML + JavaScript로 간단한 사이트를 만들고 있습니다.

다음과 같은 다차원 배열이 있다고 가정해 보겠습니다.

var wordList= [
  ["dj", "j"],
  ["ch", "kh"],
];

따라서 누군가 "Djakarta"라고 쓰면 사이트는 어레이의 일치 항목을 기반으로 "Jakarta"로 변경합니다. "Chairul"과 동일하게 "Khairul"로 변경됩니다.

여기까지 내 code는 다음과 같습니다.

/* Words that will be changed */
var wordList= [
  ["dj", "j"],
  ["ch", "kh"],
];
/* Main function */
function main() {
  //Initialize #formEjaanLama
  formEjaanLama= document.getElementById("formEjaanLama");
  //Get value #formEjaanLama
  valueFormEjaanLama= formEjaanLama.value;
  //Initialize #formEjaanBaru
  formEjaanBaru= document.getElementById("formEjaanBaru");
  //Mulai perubahan
  for (var arrayIndex in wordList) {
    var regex= new RegExp(wordList[arrayIndex][0], "gi");
    valueFormEjaanLama.replaceAll(regex, wordList[arrayIndex][1]);
  }
  console.log(valueFormEjaanLama);
}

배열 인덱스는 현재 배열 인덱스의 수입니다.~을위한고리. 그래서단어 목록[배열 인덱스][0]같음디제이그리고채널. 등등.

사이트를 실행하고 입력했습니다.자카르타하지만 말은 전혀 바뀌지 않았다.

여기서 놓친 것이 있습니까? 감사합니다. 자세한 내용이 필요하면 알려주십시오.

RegExp 참조: https://stackoverflow.com/a/494046/13293193

  • 답변 # 1

    같은 변수에 값을 할당하기만 하면 code가 작동합니다.

    for (var arrayIndex in wordList) {
        var regex= new RegExp(wordList[arrayIndex][0], "gi");
        valueFormEjaanLama= valueFormEjaanLama.replaceAll(regex, wordList[arrayIndex][1]);
    }
    

  • 답변 # 2

    그 이유는모두 다 바꿔그리고바꾸다방법, "반품" 문자열이고 해당 메서드에 사용된 문자열의 값을 바꾸지 않습니다.

    다음을 의미합니다.valueFormEjaanLama.replaceAll(정규식, wordList[arrayIndex][1]);올바른 결과를 반환하지만 반환된 결과를 사용하는 code가 없으므로 원하는 목표를 얻지 못합니다.

    code를 다음으로 변경:

    for (var arrayIndex in wordList) {
        var regex= new RegExp(wordList[arrayIndex][0], "gi");
        valueFormEjaanLama= valueFormEjaanLama.replaceAll(regex, wordList[arrayIndex][1]);
      }
    

    또한 정규 표현식은 다음과 같습니다.var 정규식= 새로운 정규식(단어 목록[배열 인덱스][0], "기")

    값에 'dj' 또는 'ch'가 있는 모든 단어와 일치합니다.valueFormEjaan라마예: 'textdj' 또는 'textdjtext' 등과 같은 텍스트와 일치합니다. 그래서 그것을 변경var 정규식= 새로운 RegExp("\\b" + wordList[arrayIndex][0], "gi")다음 단어의 경우에만 일치합니다.단어 목록값의 시작 부분에 있습니다.valueFormEjaan라마.

  • 이전 R Shiny에서 입력 텍스트 필드 정렬
  • 다음 python : 모든 Treeview 항목을 sqlite3 데이터베이스에 삽입하는 방법