我如何在特定单词之前添加一个字符,考虑到我在JavaScript中使用.replace更改了该单词中间的另一个字符?

时间:2015-02-06 00:23:20

标签: javascript regex string replace

我有一个代码用其他字符替换特殊字符,但我需要在该字之前添加另一个字符。例如,

我有一句话:"zài"我将其更改为:"zai",但我需要:"azai"

因此应在该词之前放置“a”。谢谢。

var charac = function(txta, txti) {
  var str = document.getElementById("demo").innerHTML; 

  var txta = str.replace(/ā/gi, "a").replace(/ē/gi, "e");
  var txti = str.replace(/á/gi,"a").replace(/é/gi, "e");

  var cum = str.replace(str, txta).replace(str, txti);

  document.getElementById("demo").innerHTML = cum;
};

2 个答案:

答案 0 :(得分:0)

var str= 'hello zāi hi ē sure á ikr é'
var words = str.split(' ');
words.map(function(word){
 if(word.match(/[āáēé]/g)) return 'a' + word;
 return word;
}).join(' ').replace(/[āáēé]/g, function(letter){
  switch(letter){
    case 'ā':
    case 'á':
        return 'a';
    break;
    case 'ē':
    case 'é':
        return 'e';
    break;
  }
})

答案 1 :(得分:0)

感谢@Edwin我有这段代码:



document.getElementById('replaceBtn').addEventListener('click', function(evt){
    var demo = document.getElementById('demo');
    demo.innerHTML = demo.innerHTML.split(' ').map(function(word){
        if(word.match(/[āáǎà]/g)) {
            return 'a' + word.replace(/[āáǎà]/g, 'a');
        } else if(word.match(/[ēéěè]/g)) {
            return 'e' + word.replace(/[ēéěè]/g, 'e');
        } else if(word.match(/[īíǐì]/g)) {
            return 'i' + word.replace(/[īíǐì]/g, 'i');
        } else if(word.match(/[ōóǒò]/g)) {
            return 'o' + word.replace(/[ōóǒò]/g, 'o');
        } else if(word.match(/[ūúǔù]/g)) {
            return 'u' + word.replace(/[ūúǔù]/g, 'u');
        } else if(word.match(/[ǖǘǚǜ]/g)) {
            return 'u' + word.replace(/[ǖǘǚǜ]/g, 'ü');
        } else {
        	return word;
        }
    }).join(' ');
})

<p id="demo">tā yě jiù rén</p>
<button id="replaceBtn">Click</button>
&#13;
&#13;
&#13;