【问题标题】:How can i run "str_replace" function in js with inputs? [closed]如何在带有输入的 js 中运行“str_replace”函数? [关闭]
【发布时间】:2015-08-29 01:19:52
【问题描述】:

如何创建一个函数来将字符串转换为小写并用破折号替换所有空格?

示例:

如果输入是“Hello World”,则输出应该是“hello-world”。

如果输入是“Merhaba Dünya”,则输出应该是“merhaba-dunya”。

这是我迄今为止尝试过的。

<input name="Title" type="text" class="form-control" placeholder="Title">
<input name="TitleSeo" type="text" class="form-control" placeholder="Title">
function create_seo_url($baslik = "") {
    $TR = array('ç', 'Ç', 'ı', 'İ', 'ş', 'Ş', 'ğ', 'Ğ', 'ö', 'Ö', 'ü', 'Ü');
    $EN = array('c', 'c', 'i', 'i', 's', 's', 'g', 'g', 'o', 'o', 'u', 'u');
    $baslik = str_replace($TR, $EN, $baslik);
    $baslik = mb_strtolower($baslik, 'UTF-8');
    $baslik = preg_replace('#[^-a-zA-Z0-9_ ]#', '', $baslik);
    $baslik = trim($baslik);
    $baslik = preg_replace('#[-_ ]+#', '-', $baslik);
    return $baslik;
}

【问题讨论】:

标签: javascript php ajax html


【解决方案1】:

选择每个输入。

为第一个输入分配一个 onkeyup 处理程序,该处理程序使用String.toLowerCase().replace(/ /g,'-'); 使单词小写并用破折号替换空格。

然后将新值应用到第二个输入

var title = document.querySelector('input[name="Title"]');
var titleSeo = document.querySelector('input[name="TitleSeo"]');
title.onkeyup = function() {
  titleSeo.value = this.value.toLowerCase().replace(/ /g, '-');
}
<form action="" method="post" id="myForm">
  <input name="Title" type="text" class="form-control" placeholder="Title">
  <input name="TitleSeo" type="text" class="form-control" placeholder="Title">
  <input type="submit" value="Submit">
</form>

【讨论】:

    【解决方案2】:

    您可以在@humble.rumble 代码上使用此代码:

    function transformCharacters(text) {
        return String(text)
            .replace(/ç/gi, 'c')
            .replace(/[ıİ]/gi, 'i')
            .replace(/[ş]/gi, 's')
            .replace(/[ğ]/gi, 'g')
            .replace(/[ö]/gi, 'o')
            .replace(/[ş]/gi, 's')
            .replace(/[ü]/gi, 'u')
            .replace(/[ü]/gi, 'u')
            .replace(/[-_ ]/g, '-')
            .replace(/[^-a-zA-Z0-9_ ]/g, '')
            .toLowerCase();
    }
    

    【讨论】:

    • 然后砰!你也很棒:) 我已经将你的答案与@humble.rumble 的答案结合起来,这就是我所需要的! :)
    • 如果传入的已经是字符串,则无需使用String 构造函数。 text.replace(/ç/gi, 'c') 会起作用。
    猜你喜欢
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多