JavaScript 中的正则表达式以匹配土耳其语字符
Regular expression in JavaScript to match turkish characters
我正在使用此代码:
var icerik = $(this).val();
var kelime = /#(\w+)/ig;
var isim = icerik.match(kelime);
我正在做 ajax 过程,例如:#bursa
正在工作,但 #büşra
没有工作,它没有在 b 之后发布。
https://jsfiddle.net/6mo9cyv5/
我能做什么?
只需删除标志g。
var kelime = /#(\w+)/i;
console.log( kelime.test('#bursa') );
console.log( kelime.test('#büşra') );
The "g" flag indicates that the regular expression should be tested
against all possible matches in a string.
表示在第一次匹配后,会在找到的地方保存一个"cursor"。因此,如果您尝试匹配另一个字符串,它将从 "cursor" 点开始。去掉g标志,每次都会从头开始。
--
编辑:
使用这个:https://jsfiddle.net/afqm9uaa/
var kelime = /#[^\d]+/i;
$('#gonderi').on('input',function(){
var icerik = $(this).val();
var isim = icerik.match(kelime);
var deger = "isim="+isim;
if(isim && isim.length > 0) {
$('#sonuc').html(isim[0]);
}
});
模式是选择\w+(单词字符)根据:http://www.w3schools.com/jsref/jsref_regexp_wordchar.asp
A word character is a character from a-z, A-Z, 0-9, including the _ (underscore) character.
所以 bursa 匹配,但 büşra 不匹配。因此,我将其更改为 [^\d] "anything but numbers"。如果你想要数字,你可以只使用:
var kelime = /#.+/i;
. 表示 "anything".
--
如果你想得到#字符后面的单词,你应该使用:
var result = icerik.substr(1); //Extracts # character
在那种情况下,我会将您的代码简化为:https://jsfiddle.net/5wo6w3ev/2/
var kelime = /#.+/i;
$('#gonderi').on('input',function(){
var icerik = $(this).val();
if (kelime.test(icerik)) {
var word = icerik.substr(1);
$('#sonuc').html( word );
}
});
我正在使用此代码:
var icerik = $(this).val();
var kelime = /#(\w+)/ig;
var isim = icerik.match(kelime);
我正在做 ajax 过程,例如:#bursa
正在工作,但 #büşra
没有工作,它没有在 b 之后发布。
https://jsfiddle.net/6mo9cyv5/
我能做什么?
只需删除标志g。
var kelime = /#(\w+)/i;
console.log( kelime.test('#bursa') );
console.log( kelime.test('#büşra') );
The "g" flag indicates that the regular expression should be tested against all possible matches in a string.
表示在第一次匹配后,会在找到的地方保存一个"cursor"。因此,如果您尝试匹配另一个字符串,它将从 "cursor" 点开始。去掉g标志,每次都会从头开始。
--
编辑:
使用这个:https://jsfiddle.net/afqm9uaa/
var kelime = /#[^\d]+/i;
$('#gonderi').on('input',function(){
var icerik = $(this).val();
var isim = icerik.match(kelime);
var deger = "isim="+isim;
if(isim && isim.length > 0) {
$('#sonuc').html(isim[0]);
}
});
模式是选择\w+(单词字符)根据:http://www.w3schools.com/jsref/jsref_regexp_wordchar.asp
A word character is a character from a-z, A-Z, 0-9, including the _ (underscore) character.
所以 bursa 匹配,但 büşra 不匹配。因此,我将其更改为 [^\d] "anything but numbers"。如果你想要数字,你可以只使用:
var kelime = /#.+/i;
. 表示 "anything".
--
如果你想得到#字符后面的单词,你应该使用:
var result = icerik.substr(1); //Extracts # character
在那种情况下,我会将您的代码简化为:https://jsfiddle.net/5wo6w3ev/2/
var kelime = /#.+/i;
$('#gonderi').on('input',function(){
var icerik = $(this).val();
if (kelime.test(icerik)) {
var word = icerik.substr(1);
$('#sonuc').html( word );
}
});