Пожалуйста, см мой код JavaScript:JavaScript разделить строку
var str = "/price -a 20 tips for model";
var removeSlsh = str.slice(1); //output = price -a 20 tips for model
var newStr = removeSlsh.replace(/\s+/g,' ').trim().split(' ');
console.log(newStr); // Output = ["price", "-a", "20", "tips", "for", "model"]
Над кодом работает нормально. Каждая строка разделяется, у которой есть пробел. Но мне нужно разделить выше строки, как
1 = price // Field name
2 = -a // price type -a anonymous, -m model, -p private
3 = 20 // amount of price
4 = tips for model //comment
выход должен быть
["price", "-a", "20", "tips for model"]
EDIT:
Если я установить предел разделенного текста. Похоже, что
var newStr = removeSlsh.replace(/\s+/g,' ').trim().split(' ',4);
console.log(newStr); // Output = ["price", "-a", "20", "tips"]
N.B - тип и комментарии не являются обязательными. строка может быть /price 20
или /price 20 tips for model
или /price -a 20
, но поле цены является обязательным и должно быть числовым значением. Второе поле необязательно, вы не введете какое-либо значение. Если вы введете какой-либо текст, кроме -a, -m, -p
, тогда это поле подтвердится.
кто-то задал подобную проблему.Вам нужно разбить их на массив и присоединиться к последним элементам, используя «" – Surely
Если ваши первые 3 параметра всегда * fieldname *, * flag * и * value *, вы можете просто отделить остальную часть массива и использовать *. join ('') * на нем, чтобы извлечь сообщение. Если у вас больше форматов, нам нужна дополнительная информация. – Robin
Как присоединиться к последним элементам? это динамично. Я не знаю, что идет комментарий или нет. комментарий - необязательное поле. – Developer