如何检测用于创建词条的输入语言,如果不是英语,则使用javascript来输入子词为空

问题描述 投票:0回答:2

我正在尝试输入标题并使用它来创建文件。但是,如果标题不是像“আমারপোস্ট”那样用英语写的,则该条形输入将保持为空。代码如下。希望有人可以帮忙。不太擅长javascript。

document.getElementById("title").addEventListener("keyup", function() {
  if (/^[a-zA-Z]+$/.test(this.value)) {
    $(document).on('blur', '#title', function(){
        var TitleInput = $('#title').val().toLowerCase().trim();
        TitleInput = TitleInput.replace(/[^a-z0-9-]+/g, '-');
        var SlugInput = $('#slug').val(TitleInput);
    });
  } else {
    document.getElementById("show_lang_in_here").innerHTML = "Different language";
  }
});
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

</head>
<body>
    <center>
        <h1>Form</h1>
        <form action="" method="post">
            <p>Title :</p>
            <input id="title" type="text"> <br>
            <br>
            <p>Slug :</p>
            <input id="slug" type="text">
        </form>

        <div id="show_lang_in_here"></div>

    </center>

</body>

</html>
javascript slug
2个回答
1
投票

我修改了您的代码以执行我认为您要执行的操作,这些是主要更改:

  • 等待文档加载$(document).ready()
  • 我已经扩展了您的正则表达式,以允许数字和空格作为有效的英语/^[a-zA-Z0-9 ]+$/(您可以添加更多的内容,很难准确地检测出什么是有效的英语)
  • 您在if内部创建了一个事件监听器,而不是实际执行代码(您可以通过在.on('keyup blur')字符串中包含多个事件来监听多个事件)

$(document).ready(function() {
  $('#title').on('keyup blur', function() {
    if (/^[a-zA-Z0-9 ]+$/.test($(this).val())) {
      var titleInput = $(this).val().toLowerCase().trim().replace(/[^a-z0-9-]+/g, '-');
      $('#slug').val(titleInput);
    } else {
      $('#show_lang_in_here').text('Different language');
    }
  });
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<center>
  <h1>Form</h1>
  <form action="" method="post">
    <p>Title :</p>
    <input id="title" type="text"> <br>
    <br>
    <p>Slug :</p>
    <input id="slug" type="text">
  </form>
  <div id="show_lang_in_here"></div>
</center>

1
投票

您正在用-代替

如果要删除所有内容,请将其更改为TitleInput = TitleInput.replace(/[^a-z0-9-]+/g, '');

document.getElementById("title").addEventListener("keyup", function() {
  if (/^[a-zA-Z]+$/.test(this.value)) {
    $(document).on('blur', '#title', function(){
        var TitleInput = $('#title').val().toLowerCase().trim();
        TitleInput = TitleInput.replace(/[^a-z0-9-]+/g, '');
        var SlugInput = $('#slug').val(TitleInput);
    });
  } else {
    document.getElementById("show_lang_in_here").innerHTML = "Different language";
  }
});
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

</head>
<body>
    <center>
        <h1>Form</h1>
        <form action="" method="post">
            <p>Title :</p>
            <input id="title" type="text"> <br>
            <br>
            <p>Slug :</p>
            <input id="slug" type="text">
        </form>

        <div id="show_lang_in_here"></div>

    </center>

</body>

</html>
© www.soinside.com 2019 - 2024. All rights reserved.