相关疑难解决方法(0)

在Javascript中替换变音符号

如何用javascript中的"普通"形式(a,s,t)替换变音符号(ă,ş,ţ等)?

javascript diacritics

16
推荐指数
5
解决办法
2万
查看次数

用引号替换双引号

我正在寻找一种方法来替换用户输入中"更正"引号的引号.

这个想法

这里有一个简要说明原则的片段:
对于引号,"正确"的引号有开启和关闭,因此需要以良好的方式进行替换.

$('#myInput').on("keyup", function(e) {
  // The below doesn't work when there's no space before or after.
  this.value = this.value.replace(/ "/g, ' “');
  this.value = this.value.replace(/" /g, '” ');
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="myInput"></textarea>
Run Code Online (Sandbox Code Playgroud)

但上述情况并非在所有情况下都有效.
例如,当"引用的单词"位于句子或行的开头或结尾时.

例子

可能的输入(小心,法语里面!:)):
⋅我很开心!Çayest,j'ai"osé",et mon"âmesœur"étaitaurendez-vous ...
⋅标语上写着:"有些文字"有些文字"有些文字".并"注意这里的空间!"
⋅"Inc"或"rect"quo"tes should"不得更换.
⋅我说:"如果它也适用于'单身',我会更喜欢它!"

正确的输出:
⋅我"快乐"!Çayest,j'ai"osé",et mon"âmesœur"étaitaurendez-vous ...
⋅标志上写着:"有些文字"有些文字"有些文字."和"注意这里的空间!"
⋅"Inc "或"rect"quo"tes应"不应被替换".
⋅我说:"如果它也适用于'单身',我会更喜欢它!"

输出不正确:
⋅标志上写着:"有些文字"有些文字"有些文字."和[...]
为什么不正确:
→报价单的末尾和结束标记之间不应有空格.
→在右引号和单词之间应该有一个空格.
→单词和开头引号之间应该有一个空格.
→开头引号与其报价之间不应有空格.

需要

在所有这些情况下,如何才能有效和轻松地替换报价?
如果可能的话,我也希望解决方案能够"纠正"引号,即使我们在整个句子输入添加它们也是如此.

请注意,我不能(不能)在正则表达式中使用单词分隔符"\ b",因为"重音字符,例如"é"或"ü"不幸被视为单词分隔符."(来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)

当然,如果没有其他解决方案,我会想出一个我认为是单词分隔符的列表并在正则表达式中使用它.但我更喜欢有一个很好的工作功能而不是列表!

任何想法将不胜感激.

javascript regex jquery

15
推荐指数
1
解决办法
712
查看次数

Mongodb将重音字符作为基础角色

在MongoDB"db.foo.find()"语法中,如何判断它是否匹配所有字母及其重音版本?

举例来说,如果我有我的数据库名称的列表:
若昂·
弗朗索瓦·
赫苏斯

我如何允许搜索字符串"Joao","Francois"或"Jesus"以匹配给定的名称?
我希望我每次都不必像这样进行搜索:
db.names.find({name : /Fr[aã...][nñ][cç][all accented o characters][all accented i characters]s/ })

regex diacritics internationalization mongodb

14
推荐指数
2
解决办法
1万
查看次数

如何在javascript正则表达式匹配中忽略急性重音?

我需要像"César"这样的词匹配这样的正则表达式/^cesar/i.

是否有选项/i配置正则表达式,以便它忽略急性重音?或者唯一的解决方案是使用这样的正则表达式/^césar/i.

javascript regex diacritics special-characters non-ascii-characters

13
推荐指数
2
解决办法
2万
查看次数

jQuery DataTables - 重音不敏感的字母表和搜索

使用jQuery DataTables时,是否可以在使用过滤器时进行不区分重音的搜索?例如,当我输入'e'字符时,我想用'e'或'é','è'搜索每个单词.

我想到的是将字符串规范化并将它们放入一个单独的隐藏列中,但这并不能解决字母顺序问题.

编辑

我尝试了以下方法:

$.fn.dataTableExt.ofnSearch = function ( data ) {
return ! data ?
    '' :
    typeof data === 'string' ?
        data
            .replace( /\n/g, ' ' )
            .replace( /á/g, 'a' )
            .replace( /é/g, 'e' )
            .replace( /í/g, 'i' )
            .replace( /ó/g, 'o' )
            .replace( /ú/g, 'u' )
            .replace( /ê/g, 'e' )
            .replace( /î/g, 'i' )
            .replace( /ô/g, 'o' )
            .replace( /è/g, 'e' )
            .replace( /ï/g, 'i' )
            .replace( /ü/g, 'u' )
            .replace( /ç/g, 'c' ) : …
Run Code Online (Sandbox Code Playgroud)

javascript jquery non-ascii-characters accent-insensitive jquery-datatables

13
推荐指数
2
解决办法
9103
查看次数

JavaScript过滤类似的字符串

上下文:我正在使用HTML表提供大型列表的前端.该表的内容有各种不同的(印欧语系)语言.我想让我的用户轻松过滤表格.

实现"查找类似"搜索的简单/最简单的方法是什么?"找到类似"我的意思是:

  • 忽略任何puncation(例如,h-ell.o搜索时 发现hello)
  • 忽略同性恋字样(例如,hélló搜索时发现hello)
  • ......可能更多,反之亦然.

我已经有了JQuery,但是,如果合适的话,还会安装第三方JS库.

例子:

[ 'hello', 'héllo', 'h-ello', 'hallo', 'hellot', 'hell', 'hellø' ]

用户搜索héllo,应匹配[ 'héllo', 'hello', 'h-ello', 'hellø'] 不匹配'hallo'(仅拼写,a根本不"连接"到e).舒尔德不匹配hellot(太长).不应该匹配hell(太短).

javascript

11
推荐指数
1
解决办法
917
查看次数

将Javascript UTF-8转换为ASCII(如PHP中的Iconv('UTF-8','ASCII // TRANSLIT',$ string))

我想知道如何使用Javascript将UTF-8中的字符"转换"为最接近的ASCII等价物,就像PHP中的Iconv doest一样.

例:

ü变成你
成为o

我宁愿不使用替换,因为a)它需要一组完整的字符,这是很多工作而且b)我很难得到一套完整的字符,而且我永远不会确定如果我错过了一两个.

javascript ascii utf-8 iconv

10
推荐指数
2
解决办法
1万
查看次数

如何使用黑名单数组和正则表达式禁止使用变音符号的单词?

我有一个类型文本的输入,我返回true或false取决于被禁止的单词列表.一切正常.我的问题是我不知道如何检查数组中带有变音符号的单词:

var bannedWords = ["bad", "mad", "testing", "b??"];
var regex = new RegExp('\\b' + bannedWords.join("\\b|\\b") + '\\b', 'i');

$(function () {
  $("input").on("change", function () {
    var valid = !regex.test(this.value);
    alert(valid);
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' name='word_to_check'>
Run Code Online (Sandbox Code Playgroud)

现在在单词上b??它返回true而不是false,例如.

html javascript regex jquery

10
推荐指数
1
解决办法
1266
查看次数

javascript函数删除变音符号

我正在搜索javascript函数来替换法语变音符号并且来自这段代码:

String.prototype.removeDiacritics = function() {
var diacritics = [
    [/[\300-\306]/g, 'A'],
    [/[\340-\346]/g, 'a'],
    [/[\310-\313]/g, 'E'],
    [/[\350-\353]/g, 'e'],
    [/[\314-\317]/g, 'I'],
    [/[\354-\357]/g, 'i'],
    [/[\322-\330]/g, 'O'],
    [/[\362-\370]/g, 'o'],
    [/[\331-\334]/g, 'U'],
    [/[\371-\374]/g, 'u'],
    [/[\321]/g, 'N'],
    [/[\361]/g, 'n'],
    [/[\307]/g, 'C'],
    [/[\347]/g, 'c'],
];
var s = this;
for (var i = 0; i < diacritics.length; i++) {
    s = s.replace(diacritics[i][0], diacritics[i][1]);
}
return s;
Run Code Online (Sandbox Code Playgroud)

}

这很好,但我想知道从哪里得到那些正则表达式数字:[/ [\ 300-\306]/g,'A'] ......

我问的原因是因为我注意到替换列表缺少ÿ字符,但我不知道正则表达式是什么来取代ÿ到y.

谢谢!

javascript jquery

8
推荐指数
2
解决办法
6780
查看次数

将重音文本转换为ASCII字符?

我想在Javascript中将重音字母和各种编码转换成简单的英文ASCII格式,并想知道有哪些可能的选项.我需要的是:

éclair ~becomes~ eclair

bär ~becomes~ bar

?????? ~becomes~ privet

????? ~becomes~ konnichiva
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这个想法是将任何语言转换为简单的英语ASCII等效语言.áčçéñtèd字母被转换为它们的简单等价物,西里尔字母或日文编码的字母被转换成它们的音译等价物.

有人知道在Javascript中这样做的方法吗?

javascript ascii transliteration node.js

7
推荐指数
1
解决办法
4366
查看次数