Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
正则表达式在jQuery中用破折号替换空格_Jquery_Regex - Fatal编程技术网

正则表达式在jQuery中用破折号替换空格

正则表达式在jQuery中用破折号替换空格,jquery,regex,Jquery,Regex,我有下面的代码,它在输入另一个字段时填充一个字段 $('#title').bind('keyup keypress blur', function() { var myStr = $(this).val() myStr=myStr.toLowerCase(); myStr=myStr.replace(/ /g,"-"); myStr=myStr.replace(/[^a-zA-Z0-9\.]+/g,""); mySt

我有下面的代码,它在输入另一个字段时填充一个字段

$('#title').bind('keyup keypress blur', function() 
{  

    var myStr = $(this).val()
        myStr=myStr.toLowerCase();
        myStr=myStr.replace(/ /g,"-");
        myStr=myStr.replace(/[^a-zA-Z0-9\.]+/g,"");
        myStr=myStr.replace(/\.+/g, "-");


    $('#filename').val(myStr); 
});
该代码可以删除任何非字母数字字符,但我希望它用“-”破折号替换空格

如果我将破折号改为句号“.”,这是有效的,不知道为什么或如何补救?正则表达式使我困惑

谁能给我指出正确的方向吗

更新

只是用这个让它按要求工作

<script>
$('#title').bind('keyup keypress blur', function() 
{  

    var myStr = $(this).val()
        myStr=myStr.toLowerCase();
        myStr=myStr.replace(/[^a-zA-Z0-9 ]+/g,"");
        myStr=myStr.replace(/\s+/g, "-");


    $('#filename').val(myStr); 
});
</script>

$('#title').bind('keyup keypress blur',function()
{  
var myStr=$(this.val()
myStr=myStr.toLowerCase();
myStr=myStr.替换(/[^a-zA-Z0-9]+//g,”);
myStr=myStr.replace(/\s+/g,“-”);
$('#filename').val(myStr);
});

\s
在正则表达式中表示
空白(\n、\r、\t、\f和“”)

myStr=myStr.replace(/\s+/g, "-");

您正在通过以下方式撤消自己的工作:

myStr=myStr.replace(/[^a-zA-Z0-9\.]+/g,""); //removes dashes (-)
将其更改为:

myStr=myStr.replace(/[^a-zA-Z0-9\.-]+/g,"");
你说删除任何不是字母、数字或
(因此删除破折号)的内容


只需在字符组中添加一个破折号/连字符,即可对其进行排序

我建议使用此正则表达式,而不是使用第一个正则表达式(^\s+|[^a-zA-Z0-9]+|\s+$)/g。它将防止在字符串的开头和结尾添加破折号,以防用户意外地在那里添加空格

$('#title').bind('keyup keypress blur', function() 
{  

    var myStr = $(this).val()
    myStr=myStr.toLowerCase();
    myStr=myStr.replace(/(^\s+|[^a-zA-Z0-9 ]+|\s+$)/g,"");   //this one
    myStr=myStr.replace(/\s+/g, "-");


    $('#filename').val(myStr); 
});

可能的重复项不完全准确,
\s
表示空白。这也包括tab和newline之类的东西。只有空格是
/
。请编辑您的答案以更正您的第一句话。正如@DaniëlKnippers所指出的,您目前提供的信息具有误导性