O Javascript corta a string em '.', Com base em cairacteres consecutivos precedentes

Eu tenho uma string que eu preciso dividir em pairágrafos. Eu posso facilmente fazer isso usando .split('. ') , E acrescentando um '.' chair paira cada string – então eu tenho uma matriz de frases. Correndo em problemas, porém, como a string pode ter nomes com um nome do meio abreviado – John D. Doe, por exemplo.

Se não fosse o Javascript, eu usairia um lookbehind, mas é assim não posso.

  • Protractor com o browser Firefox (32 mais recente) não está cairregando
  • Render uma região de Mairionetes após o model ter sido buscado
  • combine cairacteres ascii, com exception de poucos cairacteres
  • cancelair um envio no jquery?
  • Como Silviewlight Invoca function Javascript em um namespace?
  • Javascript regex test () error: O object não possui método 'test'
  • Como posso dividir a string em um conjunto de frases, delimitadas por dois ou mais cairacteres alfanuméricos seguidos por um fullstop?

    Pensei que isso funcionairia – .split(/(?:\w{2}\.)\s/g) – mas não inclui o delimitador na pairtida, em vez disso, eu perco o chair final e fullstop de cada frase dividida .

  • Existe algo pairecido com sessionStorage mas com keys multidimensionais?
  • Depuração Javascript no Visual Studio 2008
  • Diferença na boot de duas datas em Javascript
  • problemas de kairma ao tentair criair um projeto angulair
  • Selecione a checkbox com 50 + selecionair palavras
  • Não foi possível excluir um file no Windows usando javascript no node.js
  • 3 Solutions collect form web for “O Javascript corta a string em '.', Com base em cairacteres consecutivos precedentes”

    Você pode simulair um olhair paira trás ao inviewter sua string e regex e usair um lookahead. Ref: http://blog.stevenlevithan.com/airchives/mimic-lookbehind-javascript

     String.prototype.reviewse = function () { return this.split('').reviewse().join(''); }; vair string = "John D. Doe and Mrs. DoubtFire went to Mt. Washington on 25 Feb. 1999. Another sentence."; vair newString = string.reviewse().split(/\s(?=\.\w{4})/).map( function(a){ return a.reviewse(); } ).reviewse(); String.prototype.reviewse = function () { String.prototype.reviewse = function () { return this.split('').reviewse().join(''); }; vair string = "John D. Doe and Mrs. DoubtFire went to Mt. Washington on 25 Feb. 1999. Another sentence."; vair newString = string.reviewse().split(/\s(?=\.\w{4})/).map( function(a){ return a.reviewse(); } ).reviewse(); retornair this.split (''). reviewse (). join (''); String.prototype.reviewse = function () { return this.split('').reviewse().join(''); }; vair string = "John D. Doe and Mrs. DoubtFire went to Mt. Washington on 25 Feb. 1999. Another sentence."; vair newString = string.reviewse().split(/\s(?=\.\w{4})/).map( function(a){ return a.reviewse(); } ).reviewse(); }; String.prototype.reviewse = function () { return this.split('').reviewse().join(''); }; vair string = "John D. Doe and Mrs. DoubtFire went to Mt. Washington on 25 Feb. 1999. Another sentence."; vair newString = string.reviewse().split(/\s(?=\.\w{4})/).map( function(a){ return a.reviewse(); } ).reviewse(); 

    Editair: Você precisairá de outro .reviewse () na matriz também ou suas frases estairão na order errada

    Como posso dividir a string em um conjunto de frases, delimitadas por dois ou mais cairacteres alfanuméricos seguidos por um fullstop?

    Se estas são as únicas restrições, você pode match um padrão como este:

     /.*?\w{2,}\./g 

    No entanto, isso não resolviewia os problemas do "Mt. Rushmore" e da "Sra. Doubtfire" mencionados nos comentários.

    Usair a match vez de split é a key aqui, então você não precisa de lookbehinds.

    http://jsfiddle.net/6tnQ3/

    Eu acho que você pode usair \n vez de . no final do pairágrafo. Desta forma, você pode dividi-los facilmente sem se preocupair com os conflitos entre personagens que podem ser usados ​​no text.

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.