2016-11-02 5 views
0

지금까지 전체 문자열 끝에있는 원치 않는 문자 만 제거 할 수있었습니다. 그러나 나는 각 단어의 시작 부분에 그것을 제거하지 않고 각 단어의 끝에 동일한 결과를 얻는 방법을 모른다.정규 표현식을 사용하여 각 단어의 끝에있는 특정 문자를 제거하십시오.

Here 내가 얻은 것입니다.

function removeCharacter(str){ 
    return str.replace(/[!]*$/g, ''); 
} 

console.log(removeCharacter('Hello, my name is Ivan Ivanych.!')); 
console.log(removeCharacter("!!Hello there.!!")); 
console.log(removeCharacter("Hello,!!! I!! am! Ivan.")); 
console.log(removeCharacter("!!!Hello,!!! !!I!! !am! Ivan.")); 
+1

시도'/! (?! \ S)/g' 또는 '/! (?! \ w)/g'. –

+0

다른 생각 :'.replace (/ (\ w)! +/g, "$ 1")'. –

+0

예상되는 결과는 무엇입니까? – Toto

답변

2

이것은 당신이 원하는 것을 할 것입니다 :

function removeCharacter(str){ 
 
    return str.replace(/([a-z,.])!+/gi, '$1'); 
 
} 
 

 
console.log(removeCharacter('Hello, my name is Ivan Ivanych.!')); 
 
console.log(removeCharacter("!!Hello there.!!")); 
 
console.log(removeCharacter("Hello,!!! I!! am! Ivan.")); 
 
console.log(removeCharacter("!!!Hello,!!! !!I!! !am! Ivan."));

1

이를보십시오. 한 단어 끝의 느낌표 만 제거합니다.

function removeCharacter(str){ 
 
    return str.replace(/(!+)(?=\s|$)/g, ''); 
 
} 
 

 
console.log(removeCharacter('Hello, my name is Ivan Ivanych.!')); 
 
console.log(removeCharacter("!!Hello there.!!")); 
 
console.log(removeCharacter("Hello,!!! I!! am! Ivan.")); 
 
console.log(removeCharacter("!!!Hello,!!! !!I!! !am! Ivan."));

관련 문제