2016-04-01 14 views

cevap

2

Bu, farklı alfabelerden ek Unicode karakterleriyle bile çalışmalıdır. Word Boundaries - biz Yukarıdaki kodda

var result = "abcd !!hh8kK*(abcd efgh".split(/\b/g); 

sözcük sınırları \b düzenli ifade ile bir dize bölün. Aşağıda

Örnek:

var input = document.getElementById("input"); 
 
var output = document.getElementById("output"); 
 

 
var result = input.value.split(/\b/g); 
 

 
result.forEach(function(item, index) { 
 
    output.innerHTML += "Matched item at index " + index + ": <b>`" + item + "`</b><br> \n"; 
 
});
<input id="input" type="text" value="abcd !!hh8kK*(abcd efgh"> 
 
<p id="output"></p>

+0

Sözcük sınırı kapsamında tek bir alıntı ekleme imkanı var mıdır, olmamalı gibi kelimeleri yakalamama yardımcı olacaktır. – user961954

3

deneyin:

var str = "abcd !!hh8kK*(abcd efgh"; 
 
var result = str.split(/(\w+)/); 
 
result = result.slice(1, result.length-1); // remove trailing empty strings 
 
document.body.innerHTML = JSON.stringify(result);

+0

JSON.stringify doğal kullanılabilir mi? – user961954

+0

@ user961954 yes –

+0

@ user961954: [** JSON.stringify tüm modern tarayıcılarda mevcuttur ve IE8 + **] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ IE uyumluluk modunda bile JSON/stringify) –

3
Aşağıdaki ifade kullanabilirsiniz

:

/([A-Za-z0-9]+|[^A-Za-z0-9]+)/g 

Regexper Visualisation

Ve JavaScript'in match yöntemi kullanarak uygulayın:

"abcd !!hh8kK*(abcd efgh".match(/([A-Za-z0-9]+|[^A-Za-z0-9]+)/g) 
-> ["abcd", " !!", "hh8kK", "*(", "abcd", " ", "efgh"] 

Bu, bir veya daha fazla alfanümerik karakter veya daha fazla alfanümerik olmayan karakterin birini eşleşir.

\w+'u kullanmayın, bu iki alt çizgi (_) ve kısa çizgilerle (-) eşleşiyor.

+0

Ne demek istediğimi anlatan "Ben burada hem alt çizgi (_) hem de tire (-) ile eşleşmediği için kullanmıyorum." – user961954

+0

@ user961954 [jcubic yanıtı] (http://stackoverflow.com/a/36351232/1317805) normal ifadeyi kullanır '/ \ w + /'. Bu, tüm alfanümerik karakterleri alt çizgi ve tire ile birlikte aynı gruba yerleştirir ('a-b_c !!)' '[" a-b_c "," !! "]' olur. sonra). –

+0

Haklısınız! Bunu istemiyorum, bu yüzden cevap benim için işe yaramayacak, ancak Rolice'nin yanıt bölmesinden (/ \ b/g) yeni bir cevabı değerlendiriyorum. – user961954