jQuery: разбить строку, а затем вставить во вход и выбрать - PullRequest
1 голос
/ 09 октября 2009

У меня есть такие строки:

"Car is blue"

Строка также может быть такой:

"Flower is not at all beautiful"

У меня есть HTML, как это:

<input class="subject" />
<select class="isornot">
    <option>is</option>
    <option>is not</option>
</select>
<input class="adjective" />

Мне нужно разбить строку и поместить ее в соответствующие места в форме. Для первой строки тема val должна быть автомобилем, должна быть выбрана, а значение прилагательного должно быть синим. Для второй строки «цветок» - это объект, а не «выбор», а «вообще красиво» - прилагательное.

Следовательно, разделение должно быть или нет. Не уверен, как это сделать. Спасибо.

Ответы [ 2 ]

5 голосов
/ 09 октября 2009

Вот, пожалуйста:

var str = "Car is not blue";
var match = str.match(/^(.+?)\s+(is(?:\snot)?)\s+(.+)$/);
if (match) {
    $('input.subject').val(match[1]);
    $('select.isornot').val(match[2]);
    $('input.adjective').val(match[3]);
} else {
    alert("Could not parse message.");
}

Ссылки:

2 голосов
/ 09 октября 2009

Добавление поля ввода с идентификатором "строка"


function split()
{
 var strings=$("#string").attr("value").split("is not");
 if (strings.length==2){
    assingData(strings,1);  
 }
 else{
    strings=$("#string").attr("value").split(" is ");
    assingData(strings,0);
 }
}

function assingData(value,index){
    if(value.length==2){
        $(".subject").attr("value",value[0]);       
        $(".isornot option:eq("+index+")").attr("selected", "selected");
        $(".adjective").attr("value",value[1]);
    }
    else{
        alert("malformed strings");
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...