jquery替换不替换所有空格 -

时间:2013-01-02 11:10:12

标签: javascript jquery replace

为什么我的jquery没有用'-'替换所有空格。它只用'-'

替换第一个空格
$('.modhForm').submit(function(event) {

        var $this = $(this),
            action = $this.attr('action'),
            query = $this.find('.topsearchbar').val(); // Use val() instead of attr('value').

        if (action.length >= 2 && query.length >= 2 && query.lenght <=24) {

          // Use URI encoding
          var newAction = (action + '/' + query.replace(' ','-'));
          console.log('OK', newAction); // DEBUG

          // Change action attribute
          $this.attr('action', newAction);

        } else {
          console.log('To small to be any good'); // DEBUG

          // Do not submit the form
          event.preventDefault();
        }
    });

8 个答案:

答案 0 :(得分:30)

试试这个:

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

演示:JSFiddle

答案 1 :(得分:3)

试试这个:

var str = 'a b c';
var replaced = str.split(' ').join('-');

答案 2 :(得分:2)

它是:“if(action.length&gt; = 2&amp;&amp; query.length&gt; = 2&amp;&amp; query.length &lt; = 24){”

不:“if(action.length&gt; = 2&amp;&amp; query.length&gt; = 2&amp;&amp; query.lenght &lt; = 24){”

答案 3 :(得分:1)

使用regular expression替换所有出现次数:

query.replace(/\ /g, '-')

答案 4 :(得分:1)

您可以尝试自定义功能

COL1 COL2 COL4 COL5 COL3
BRCC hete 15869 105A 1
BRAC he 1799967 956G 1
BCAS he 7334543 369AFVC 2
RCA he 9534262 7806-14 4
RCA he 144848 1114A 5
RA he 206118 52A 5
BCAVV he 543304 3807TCD 5
BCA hoo 106091515 4308TDDSC 1
BCA hoo 206075 4563A 1
BCA hoo 799917 2612CDSA 1
BCA hoo 206076 513G 2
BCA hoom 16941 3113A 3

答案 5 :(得分:0)

试试这个

query.replace(/ +(?= )/g,'-');

如果您的查询为undefiniedNaN

,这仍然有效

答案 6 :(得分:0)

替换所有空格(包括制表符,空格......):

query.replace(/\s/g, '_');

答案 7 :(得分:0)

String.prototype.replace仅在第一个参数为字符串时才替换第一个。要替换所有出现的事件,您需要将全局正则表达式作为第一个参数传递。

  

replace

     

...

     

要执行全局搜索和替换,请在正则表达式中包含g开关,或者如果第一个参数是字符串,请在flags参数中包含g。

其他人已经展示了许多适用于“空间”定义的正则表达式。