Fix problem with parsing lists contain non-breaking spaces

Some of the time we need to treat non-breaking spaces as though they
are not spaces (regexps treat them as spaces by default).
This commit is contained in:
Jermolene 2014-05-06 18:10:27 +01:00
parent cc3d44aec1
commit 76e8640c31
2 changed files with 30 additions and 1 deletions

View File

@ -266,7 +266,7 @@ $tw.utils.stringifyList = function(value) {
// Parse a string array from a bracketted list. For example "OneTiddler [[Another Tiddler]] LastOne"
$tw.utils.parseStringArray = function(value) {
if(typeof value === "string") {
var memberRegExp = /(?:^|\s)(?:\[\[(.*?)\]\])(?=\s|$)|(\S+)/mg,
var memberRegExp = /(?:^|[^\S\xA0])(?:\[\[(.*?)\]\])(?=[^\S\xA0]|$)|([\S\xA0]+)/mg,
results = [],
match;
do {

View File

@ -0,0 +1,29 @@
/*\
title: test-utils.js
type: application/javascript
tags: [[$:/tags/test-spec]]
Tests various utility functions.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
describe("Utility tests", function() {
it("should handle parsing a string array", function() {
expect($tw.utils.parseStringArray("Tiddler8")).toEqual(["Tiddler8"]);
expect($tw.utils.parseStringArray(" Tiddler8")).toEqual(["Tiddler8"]);
expect($tw.utils.parseStringArray("Tiddler8 ")).toEqual(["Tiddler8"]);
expect($tw.utils.parseStringArray("Tiddler8 two")).toEqual(["Tiddler8","two"]);
expect($tw.utils.parseStringArray(" Tiddler8 two ")).toEqual(["Tiddler8","two"]);
expect($tw.utils.parseStringArray(" Tidd\u00a0ler8 two ")).toEqual(["Tidd\u00a0ler8","two"]);
expect($tw.utils.parseStringArray(" [[Tidd\u00a0ler8]] two ")).toEqual(["Tidd\u00a0ler8","two"]);
});
});
})();