正则表达式更改自定义单词 [英] regex to change a custom word

查看:45
本文介绍了正则表达式更改自定义单词的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在做一个翻译项目,当用户输入时,我必须更改一些词,例如"yalama"->"yaLama""yalamak"->"yaLamak""kalamadi"->"kaLamadi""salamadi"->"saLamadi",我的代码现在运行良好,但我有一个问题:如果我只输入Lam",它并没有像它应该的那样变成 Lm"...而且我不知道如何编写或解决它的正则表达式 :(>

$(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');$("#ta_1").val(text2);});});

<html lang="zh-cn"><头><title></title><meta charset="utf-8"/><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><身体><textarea id="ta_1" ​​rows="5" cols="28" ></textarea></html>

解决方案

我重写了字符串替换的模式.请试试这个:

$(document).ready(function() {$("#ta_1").keyup(function(event) {var text2 = $(this).val();text2 = text2.replace(/(ya)l(amak?)/g, "$1L$2");text2 = text2.replace(/(ka|sa)l(aadi)/g, "$1L$2");text2 = text2.replace(/\bLam\b/g, "Lm");$("#ta_1").val(text2);});});

<html lang="zh-cn"><头><title></title><meta charset="utf-8"/><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><身体><textarea id="ta_1" ​​rows="5" cols="28"></textarea></html>

Im working on a translation project, when user types i have to change some words like "yalama"->"yaLama", "yalamak"->"yaLamak", "kalamadi"->"kaLamadi", "salamadi"->"saLamadi", my code works well for now but i have a problem: if i type only "Lam", it is not changing to "Lm" as it should be...and I don't know how to write or solve its regex :(

$(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');
        $("#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>

解决方案

I rewrote the pattern for string replace. Please try this:

$(document).ready(function() {

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

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

    text2 = text2.replace(/(ya)l(amak?)/g, "$1L$2");
    text2 = text2.replace(/(ka|sa)l(amadi)/g, "$1L$2");
    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>

这篇关于正则表达式更改自定义单词的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆