Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何组合输入中的单词?_Javascript_Jquery - Fatal编程技术网

Javascript 如何组合输入中的单词?

Javascript 如何组合输入中的单词?,javascript,jquery,Javascript,Jquery,例如,如果我有这样的表格: <form > <input type="text" name="name" id="my_input"> <input id="search_tags" type="submit" value="Search"> </form> 我写了“示例”和“项目”这两个词,我输入的值将是“示例项目”。我如何从这样的文字构建:“/example item/”?用连字符替换所有空格: var

例如,如果我有这样的表格:

  <form >
        <input type="text" name="name" id="my_input">
        <input id="search_tags" type="submit" value="Search">
  </form>

我写了“示例”和“项目”这两个词,我输入的值将是“示例项目”。我如何从这样的文字构建:“/example item/”?

用连字符替换所有空格:

var my_input_val = $('#my_input').val().replace(/\s/g, '-');
然后将正斜杠连接到任意一端:

var concat_my_input = '/' + my_input_val + '/';

.replace是一个非常灵活的函数,可以与正则表达式或字符串匹配。有关详细信息,请参阅。

使用正则表达式。。可能类似于value.replace/[^\w\d]+/gi'-';它将取代任何不是数字或字母的东西。。这看起来像是你想要做的

var value = "example item 2";
value.replace(/[^\w\d]+/gi, '-');

console.log(value) // will be example-item-2

value = '/' + value + '/';
console.log(value) // will be '/example-item-2/'

如果你想为你的每一个输入做这件事,那么

var combinedWord;

$("input[type=text]").each(function()
{
combinedWord+=$(this).val();    //if space between different input is to be maintained then add .replace(' ', '-') here
});

return "/" + combinedWord + "/"; //if all spaces need to be replaced add .replace(' ', '-') here.

如果您要将其发送到服务器进行处理,而不仅仅是在本地使用,我会将其在服务器上进行组合,如果可以的话,还可以选择在客户端浏览器中进行组合。我需要在sneding之前进行组合,因为我将使用组合词作为get url。注意,我不是告诉您不要,只是警告说,仅在浏览器中执行此操作不如在服务器上执行此操作可靠。如果是PHP,您也可以使用头重定向,用户永远不会知道。对不起。我不是什么都懂英语。我没有使用php,我仍然不知道你在说什么,但这是我的内疚。谢谢大家。我只是说,如果可以的话,在服务器上替换GET字符串。尝试输入文本并提交此表单,注意用户从未看到重定向:您不需要PHP来完成此操作,但这是我知道的唯一语言。谢谢。11分钟后,我将接受这个答案作为正确的解决方案。如果不使用带有全局修饰符的正则表达式,replace将只替换第一次出现的。
var combinedWord;

$("input[type=text]").each(function()
{
combinedWord+=$(this).val();    //if space between different input is to be maintained then add .replace(' ', '-') here
});

return "/" + combinedWord + "/"; //if all spaces need to be replaced add .replace(' ', '-') here.