JQuery - 找到前面的字符

时间:2010-10-13 00:08:45

标签: jquery jquery-selectors

我是JQuery的新手,所以这个问题可能很明显,但我有一些东西可以在输入框中添加一个文本:

$('a.blog_category').click(function(){

  var current_value = $('#id_category').val();

  $('#id_category').val(current_value + ', '+ this.text);
  return false
})

我想添加一个听起来像这样的if子句:

“如果该行末尾已有逗号,请不要添加逗号。” “如果还没有逗号,并且它不是输入文本中的第一项,请添加逗号。”

我希望这是有道理的。

事先感谢你的帮助。

4 个答案:

答案 0 :(得分:1)

不确定jQuery是否有一个帮助函数,但你可以使用以下的普通Javascript实现这一点:

if (current_value.charAt(current_value.length - 1) != ',') {
    current_value = current_value + ',';
}

答案 1 :(得分:1)

这是一个更新的函数,我将如何使用正则表达式完成此任务。

$('a.blog_category').click(function(){

     var current_value = $('#id_category').val();
     if (!current_value.match(/,$/) && !current_value.match(/^,/)) {
         // no commas were found in the wrong places :)
         $('#id_category').val(current_value + ', '+ this.text);
         return false;
     } else {
         // commas were found...don't put a comma :(
         $("#id_category").val(current_value + ' ' + this.text)
});

答案 2 :(得分:1)

最简单的方法是编写逻辑来检查你提到的所有内容。选择器可能有一种更清洁的方式,但我不得不花更多的时间来考虑这一点。但做这样的事情应该有效:

$('a.blog_category').click(function(){

  var current_value = $('#id_category').val();

  if (current_value.charAt(current_value.length - 1) != "," && current_value.indexOf(",") > -1)
{
  $('#id_category').val(current_value + ', '+ this.text);
}
else
{
  $('#id_category').val(current_value + this.text);
}
  return false
})
编辑:跳过上面。我认为你只是在寻找这样的东西,所以这可能会更好。真的不需要逻辑:

$('a.blog_category').click(function(){

  var current_value = $('#id_category').val();
    var parts = current_value.split(",");

    parts.push(this.text);

if (parts[0] == "")
    parts.splice(0,1);

  $('#id_category').val(parts.join(","));

  return false
})​

答案 3 :(得分:0)

尝试:

$('a.blog_category').click(function(){

  var current_value = $('#id_category').val();

stringArray = current_value.split(",");  if(stringArray.length>= 1) {

//Split the string into an array and check the number of items in array

if (current_value.charAt(current_value.length)!=","){

//Check what the last character in the string is - apply comma if needed

  $('#id_category').val(current_value
+ ', '+ this.text);

} }   return false })