2016-04-15 111 views
0

我工作的翻译项目,当用户键入我必须要改变一些词像正则表达式来改变一个特定的字符串

“yalama” - >“yaLama”

“yalamak “ - >” yaLamak “

”kalamadi“ - > ”kaLamadi“

”salamadi“ - >” saLamad我“

我的代码行之有效的,但现在我有一个问题:如果我只键入‘林’,它正在改变‘LM’它的好。但如果我键入” aLamsiz “(我的意思是任何”xxxLamxxx ..“)不工作:(

$(document).ready(function(){ 
 

 
$("#ta_1").keyup(function(event) { 
 

 
var text2 = $(this).val(); 
 

 
text2 = text2.replace(/al/g, "L"); 
 

 
text2 = text2.replace(/([^L]|^)am/g, '$1m'); 
 

 
text2 = text2.replace(/\bLam\b/g, "Lm"); 
 
    
 
$("#ta_1").val(text2); 
 
    
 
    
 
}); 
 
    
 
});
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
<title></title> 
 
<meta charset="utf-8" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
</head> 
 
    
 
<body> 
 
    
 
<textarea id="ta_1" rows="5" cols="28" ></textarea> 
 
    
 
</body> 
 
    
 
</html>

回答

0

不完全相信你的FUL l翻译器正试图做,但要获得原始映射,您只需在第一个正则表达式中添加'a'即可。

$(document).ready(function(){ 
 

 
$("#ta_1").keyup(function(event) { 
 

 
var text2 = $(this).val(); 
 

 
text2 = text2.replace(/al/g, "aL"); 
 

 
text2 = text2.replace(/([^L]|^)am/g, '$1m'); 
 

 
text2 = text2.replace(/\bLam\b/g, "Lm"); 
 
    
 
$("#ta_1").val(text2); 
 
    
 
    
 
}); 
 
    
 
});
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
<title></title> 
 
<meta charset="utf-8" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
</head> 
 
    
 
<body> 
 
    
 
<textarea id="ta_1" rows="5" cols="28" ></textarea> 
 
    
 
</body> 
 
    
 
</html>

+0

我不能添加一个“A”,因为我用另一个字母和IM使用它的字符代码:/ – pinug

+0

你应该给我们所有的规则或答案永远是准确的;) –

1

只是这个表达式就足够了。

text = text.replace(/a[lL]a/g, "aLa"); 
相关问题