كيف أقسم سلسلة تحتوي على علامات مختلفة؟
-
18-09-2019 - |
سؤال
أريد تقسيم سلسلة يمكن أن تبدو مثل هذا: Word1؛ Word2؛ Word3 و Word4 و Word5 و Word6.word7. إلخ.
السلسلة من إخراج أحصل عليها من صفحة PHP التي تجمع البيانات من قاعدة بيانات، لذلك قد تبدو السلسلة مختلفة ولكن الكلمات الأولى مفصولة دائما؛ وبعد ذلك، والكلمات الأخيرة مع. (DOT)
أريد أن أكون قادرا على جلب كل الكلمات التي تنتهي مع مثال؛ ، أو . في صفيف. هل يعرف شخص ما كيفية القيام بذلك؟
أود أيضا أن أعرف كيفية جلب الكلمات التي تنتهي فقط؛
تعمل الوظيفة ends_with (السلسلة، الشخصية) أدناه، لكنها لا تتخذ أي اعتبار لبرنامج Whitespace. على سبيل المثال، إذا كانت الكلمة هي الرمال Jonas، فهي تطبع فقط الرمل. أي شخص يعرف كيفية إصلاح هذا؟
المحلول
المحتمل
var string = "word1;word2;word3,word4,word5,word6.word7";
var array = string.split(/[;,.]/);
// array = ["word1", "word2", "word3", "word4", "word5", "word6", "word7"]
المفتاح هو في التعبير المنتظم مرت إلى String#split
طريقة. مشغل فئة الشخصية []
يسمح التعبير العادي بالتحديد بين الشخصيات الموجودة معها.
إذا كنت بحاجة إلى تقسيم على سلسلة تحتوي على أكثر من حرف واحد، يمكنك استخدام |
للتفريق.
var array = string.split(/;|,|./) // same as above
يحرر: لم تقرأ سؤال دقيق. شيء من هذا القبيل
var string = "word1;word2;word3,word4,word5,word6.word7";
function ends_with(string, character) {
var regexp = new RegExp('\\w+' + character, 'g');
var matches = string.match(regexp);
var replacer = new RegExp(character + '$');
return matches.map(function(ee) {
return ee.replace(replacer, '');
});
}
// ends_with(string, ';') => ["word1", "word2"]
نصائح أخرى
var myString = word1;word2;word3,word4,word5,word6.word7;
var result = myString.split(/;|,|./);