如何从字符串中删除突出的字符?特别是在IE6中,我有这样的事情:
accentsTidy = function(s){
var r=s.toLowerCase();
r = r.replace(new RegExp(/\s/g),"");
r = r.replace(new RegExp(/[àáâãäå]/g),"a");
r = r.replace(new RegExp(/æ/g),"ae");
r = r.replace(new RegExp(/ç/g),"c");
r = r.replace(new RegExp(/[èéêë]/g),"e");
r = r.replace(new RegExp(/[ìíîï]/g),"i");
r = r.replace(new RegExp(/ñ/g),"n");
r = r.replace(new RegExp(/[òóôõö]/g),"o");
r = r.replace(new RegExp(/œ/g),"oe");
r = r.replace(new RegExp(/[ùúûü]/g),"u");
r = r.replace(new RegExp(/[ýÿ]/g),"y");
r = r.replace(new RegExp(/\W/g),"");
return r;
};
Run Code Online (Sandbox Code Playgroud)
但IE6让我烦恼,似乎它不喜欢我的正则表达式.
我看过Stack Overflow(替换字符......呃,JavaScript如何不遵循关于RegExp的Unicode标准等)并且没有真正找到问题的具体答案:
How can JavaScript match for accented characters (those with diacritical marks)?
我强迫UI中的字段匹配格式:( last_name, first_name 最后[逗号空间]),我想提供对变音符号的支持,但显然在JavaScript中它比其他语言/平台要困难一些.
这是我的原始版本,直到我想添加变音支持:
/^[a-zA-Z]+,\s[a-zA-Z]+$/
目前我正在讨论增加支持的三种方法之一,所有这些我都经过测试和工作(至少在某种程度上,我真的不知道第二种方法的"范围"是什么).他们来了:
var accentedCharacters = "àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ";
// Build the full regex
var regex = "^[a-zA-Z" + accentedCharacters + "]+,\\s[a-zA-Z" + accentedCharacters + "]+$";
// Create a RegExp from the string version
regexCompiled = new RegExp(regex);
// regexCompiled = /^[a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ]+,\s[a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ]+$/
Run Code Online (Sandbox Code Playgroud)
accentedCharacters..字符类,以获得更简单的表达式:var regex = /^.+,\s.+$/;
Run Code Online (Sandbox Code Playgroud)
something, something.那我觉得好吧......当我用JavaScript编写"?" > "Z"它时,它返回true.在Unicode顺序中,它当然应该是false.如何解决这个问题?我的网站使用的是UTF-8.
我需要将姓氏列表转换为字母数字用户名,但不幸的是其中一些包含非ascii字符:
Hernández
Quermançós
Migueláñez
Run Code Online (Sandbox Code Playgroud)
现在,一种方法就是使用正则表达式删除任何非字母数字字符,例如a.replace(/[^a-z0-9]/gi,'').然而,一个更直观的解决方案(至少对于用户来说)将用他们的"普通"等效替换重音字符,例如转á,á进a和ç进c等等.有没有一种简单的方法在javascript中执行此操作?
我有一个数组:
emoticons = {
':-)' : 'smile1.gif',
':)' : 'smile2.gif',
':D' : 'smile3.gif'
}
Run Code Online (Sandbox Code Playgroud)
然后我对文本有一个变化.
var text = 'this is a simple test :)';
Run Code Online (Sandbox Code Playgroud)
和一个带有网站网址的变量
var url = "http://www.domain.com/";
Run Code Online (Sandbox Code Playgroud)
如何编写一个用符号替换符号的函数?
该<img>标签的结果应该是:
<img src="http://www.domain.com/simple2.gif" />
Run Code Online (Sandbox Code Playgroud)
(我必须将url varible连接到图像的名称).
非常感谢你!
如何用javascript中的这些符号"aceeisuuz"替换这些符号"ąčęėįšųūž"?我知道我需要使用正则表达式,但我无法制作模式.
这就是我所拥有的
var string = $(this).val();
string = string.replace(/\s+/g, '-').toLowerCase();
string = string.replace(/[^a-zA-Z0-9-]/g,'_');
string = regExp something here...
$("#custom_url").val(string);
Run Code Online (Sandbox Code Playgroud)
更新:
在其他线程中找到此解决方案:
function convert_accented_characters(str){
var conversions = new Object();
conversions['ae'] = 'ä|æ|?';
conversions['oe'] = 'ö|œ';
conversions['ue'] = 'ü';
conversions['Ae'] = 'Ä';
conversions['Ue'] = 'Ü';
conversions['Oe'] = 'Ö';
conversions['A'] = 'À|Á|Â|Ã|Ä|Å|?|?|?|?|?';
conversions['a'] = 'à|á|â|ã|å|?|?|?|?|?|ª';
conversions['C'] = 'Ç|?|?|?|?';
conversions['c'] = 'ç|?|?|?|?';
conversions['D'] = 'Ð|?|?';
conversions['d'] = 'ð|?|?';
conversions['E'] = 'È|É|Ê|Ë|?|?|?|?|?';
conversions['e'] = 'è|é|ê|ë|?|?|?|?|?';
conversions['G'] = '?|?|?|?';
conversions['g'] = '?|?|?|?';
conversions['H'] = '?|?';
conversions['h'] …Run Code Online (Sandbox Code Playgroud) 是否可以检查字符串是否包含具有语言环境支持的子字符串?
'Ábc'.contains('A') 应该是真的。
Javascript现在具有string.prototype.localeCompare(),可与区域设置支持进行字符串比较,但我看不到localeContains()对应的字符串。
如何在纯 Javascript 中将 Unicode 字符音译为 ASCII?
\n\ninput: '\xc7\x8f\xc5\x84\xc5\xa5\xc4\x99\xc5\x99'\noutput: 'Inter'\nRun Code Online (Sandbox Code Playgroud)\n\n我需要与 shell 类似的效果iconv -f UTF-8 -t 'ASCII//TRANSLIT',但在普通 Javascript 中。
我正在使用permalink_fu插件来创建标题的永久链接.我的问题是:如果标题包含德语字符,它们只是替换为'_'.
我需要的是用oeö与ae取代ä的东西
我知道String.tr但这里的问题是它用1个替换替换1个字符,所以它可以用于替换
é与eøwitho
等等
有没有人有一个漂亮而干净的解决方案呢?
谢谢
我正在使用JavaScript来设置输入的值,其中包含可能包含HTML特定字符的文本& 等等.所以,我试图找到一个匹配这些值的正则表达式并用适当的值替换它们("&" ,"")分别只有我无法弄清楚正则表达式才能做到这一点.
这是我的尝试:
创建一个包含匹配项的对象和对替换值的引用:
var specialChars = {
"&nbsp;" : " ",
"&amp;" : "&",
"&gt;" : ">",
"&lt;" : "<"
}
Run Code Online (Sandbox Code Playgroud)
然后,我想匹配我的字符串
var stringToMatch = "This string has special chars &amp; and &nbsp;"
Run Code Online (Sandbox Code Playgroud)
我试过类似的东西
stringToMatch.replace(/(&nbsp;|&)/g,specialChars["$1"]);
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我真的不明白如何捕获特殊标签并替换它.任何帮助是极大的赞赏.
javascript ×9
regex ×4
string ×3
unicode ×2
ascii ×1
compare ×1
diacritics ×1
emoticons ×1
localization ×1
polish ×1
replace ×1
ruby ×1
seo ×1
utf-8 ×1