我必须用“ögrtmnZZ”替换确切的“çember”字词,即使在另一个字符必须替换它之后也是如此。 (çember,çemberblabla..等等-Okay-)但是如果这个词在另一个词中则不行。(blablaçember,blablaçemberi等等......还没有 - )所以我找到了一个正则表达式而不是\b
锚点(单词)因为\b
锚点不知道“ç,ü,ş,ö,ğ等等”之后是否有特殊字符,它只知道ASCII代码(我认为)这个正则表达式在开始时起作用,但是它有空间问题,如果我第二次输入“çember”,它就不会放置空间而不能正常工作。我不知道如何修改我的正则表达式。有什么帮助吗?
$(document).ready(function() {
$("#ta_1").keyup(function(event) {
text2 = $(this).val();
text2 = text2.replace(RegExp("(?:^|\\s)çember(?:$|\\s)", "g"), "ögrtmnZZ");
text2 = text2.replace(RegExp("(?:^|\\s)çember([abcçdefgğhıijklmnoöprqsştuüxwvyzABCÇDEFGĞHIİJKLMNOÖPRQSTUÜXWVYZ])", "g"), "ögrtmnZZ$1");
$("#ta_2").val(text2);
});
});
<!DOCTYPE html>
<html lang="tr">
<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>
<textarea id="ta_2" rows="5" cols="28"></textarea>
</body>
</html>
答案 0 :(得分:1)
我不确定我是否理解了你想要实现的目标,但你可以试试这个:
ac = 'abcçdefgğhıijklmnoöprqsştuüxwvyzABCÇDEFGĞHIİJKLMNOÖPRQSTUÜXWVYZ';
text2 = text2.replace(RegExp("([^"+ac+"]+|\\s|^)çember([^\\s]*)", "g"), "$1ögrtmnZZ$2");
$(document).ready(function() {
$("#ta_1").keyup(function(event) {
text2 = $(this).val();
ac = 'abcçdefgğhıijklmnoöprqsştuüxwvyzABCÇDEFGĞHIİJKLMNOÖPRQSTUÜXWVYZ';
text2 = text2.replace(RegExp("([^"+ac+"]+|\\s|^)çember([^\\s]*)", "g"), "$1ögrtmnZZ$2");
$("#ta_2").val(text2);
});
});
<!DOCTYPE html>
<html lang="tr">
<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>
<textarea id="ta_2" rows="5" cols="28"></textarea>
</body>
</html>
答案 1 :(得分:0)
将非捕获组更改为捕获组,然后在替换字符串$1ögrtmnZZ$2
中使用反向引用:
text2.replace(RegExp("(^|\\s)çember([abcçdefgğhıijklmnoöprqsştuüxwvyzABCÇDEFGĞHIİJKLMNOÖPRQSTUÜXWVYZ])", "g"), "$1ögrtmnZZ$2")
$(document).ready(function() {
$("#ta_1").keyup(function(event) {
text2 = $(this).val();
text2 = text2.replace(RegExp("(^|\\s)çember([abcçdefgğhıijklmnoöprqsştuüxwvyzABCÇDEFGĞHIİJKLMNOÖPRQSTUÜXWVYZ])", "g"), "$1ögrtmnZZ$2")
$("#ta_2").val(text2);
});
});
&#13;
<!DOCTYPE html>
<html lang="tr">
<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>
<textarea id="ta_2" rows="5" cols="28"></textarea>
</body>
</html>
&#13;