jed*_*edu 2 html javascript jquery
我正在使用如下选项列表填充选择框:
\noptionsString = optionsString.replace(/\\s/g, ' ');\n
Run Code Online (Sandbox Code Playgroud)\n我这样做是为了保留单词之间的空格。如果我有这样的单词,我不希望 DOM 删除额外的空格:
\n<option>a b c</option>\n
Run Code Online (Sandbox Code Playgroud)\n如果我控制台记录选择框的值,我会得到:
\na b c
而a b c
这正是我想要的。但是,在 b 之后添加了一个隐藏字符 \xc3\xa2。
当我将字符串发送到后端数据库时,数据库找不到任何属于 ab c 的记录。当我将字符串转换为十六进制时,我看到了不可见的字符。有没有办法在不添加这个特殊字符的情况下不删除空格?
\n请注意,
创建一个不间断空格,而不仅仅是一个空格。如果您使用该选项的值,它将包含不间断空格,而不仅仅是空格。如果您希望它们是空格,则必须将它们替换为空格:
const value = theSelectBoxOrOptionElement.value.replace(/\u00A0/g, " ");
Run Code Online (Sandbox Code Playgroud)
(\u00A0
是创建的不间断空格字符
。)
但请注意,这\s
将匹配任何空格,而不仅仅是空格,因此您的replace
操作是有损操作(所有类型的空格都被替换为
,所以当我们想返回时我们无法知道哪些是哪些)。
这是一个例子:
const value = theSelectBoxOrOptionElement.value.replace(/\u00A0/g, " ");
Run Code Online (Sandbox Code Playgroud)