假设我有一个输入字段
<input type="text" class="form-control" name="filename">
并写下这样的东西:
喂
是否可以在写字时检查该字段是否为ä
,并在撰写时将其更改为a
?
到目前为止,我建立了这个:
$search = array('ä', 'Ä');
$replace = array('ae', 'Ae');
$project = str_replace($search, $replace, $input);
答案 0 :(得分:0)
你不是用PHP做的,你可以用Javascript:
来做var el = document.getElementById("filename");
el.addEventListener('keyup', function(){
var replace = ['ä','å'];
var replacewith = 'a';
var replace1 = ['ö'];
var replacewith1 = 'o';
replace.forEach(function(letter){
el.value = el.value.replace(letter, replacewith);
});
replace1.forEach(function(letter){
el.value = el.value.replace(letter, replacewith1);
});
});
将id="filename"
添加到input元素以使其生效。您可以根据需要为替换数组添加任意数量的字母。
您还可以添加更多数组来替换字母。
https://jsfiddle.net/dek5as1x/1
编辑:多个字母的解决方案
var el = document.getElementById("filename");
el.addEventListener('keyup', function(){
var replaces = [['ä','å'],['ö','ø'],['ï','ì'],['ü','ù','û'],['ë','ê']];
var replacewith = ['a','o','i','u','e'];
replaces.forEach(function(letterGroup, index){
letterGroup.forEach(function(letter){
el.value = el.value.replace(letter, replacewith[index]);
});
});
});
在这里添加一个新数组([]
)来替换。然后将所有字母添加到该数组中,该字母应转换为与该数组相同的字母。示例:['ê','ë','è']
。然后将该字母添加到replacewith数组。重要的是,字母替换数组中的字母与替换中的相应数组具有相同的索引。
当你需要更换大量字母时,这个解决方案应该更加清洁。
答案 1 :(得分:0)
你不能使用PHP来做这件事,因为PHP是服务器端。
但你可以使用JavaScript来做到这一点。 尝试:
<script language="JavaScript">
function replace() {
var input = document.getElementById("filename");
input.value = input.value.replace("ä","a");
}
<script>
<input type="text" class="form-control" name="filename" onchange="replace()">